循环 OBJECT 并获取 key 和 value
Posted
技术标签:
【中文标题】循环 OBJECT 并获取 key 和 value【英文标题】:Loop OBJECT and obtain both key and value 【发布时间】:2012-09-02 08:16:15 【问题描述】:好的,我们开始吧。我希望我能正确解释这一点。
我有一个对象,我想循环获取键和值。这是我收到的对象的示例。提前感谢您的任何帮助或想法。
Array
(
[0] => stdClass Object
(
[id] => 93
[RecordGUID] =>
[txtEmplid] => 0134754
[txtFname] =>
[txtLname] =>
[txtMname] =>
[txtEmail] =>
[txtSecEmail] =>
[txtPhoneNo] => 4046565454
[drpMajor] =>
[drpStatus] =>
[regmain] =>
[chkDental] => 0
[chkDO] =>
[chkMD] =>
[chkMDPHD] =>
[chkNursin] =>
[chkOPT] =>
[chkPA] =>
[chkPH] =>
[chkPharm] =>
[chkPOD] =>
[chkPostBac] =>
[chkVet] =>
)
)
我基本上需要遍历上述信息来获取键和值。例如:
id=93
RecordGUID=
txtEmplid=0134754
等等。
再次感谢您的任何回答。
DBF 更新 这是我使用您的代码片段时得到的结果:
int(0)
object(stdClass)#27 (24)
["id"]=>
string(2) "93"
["RecordGUID"]=>
NULL
["txtEmplid"]=>
string(7) "0134754"
["txtFname"]=>
string(0) ""
["txtLname"]=>
string(0) ""
["txtMname"]=>
string(0) ""
["txtEmail"]=>
string(0) ""
["txtSecEmail"]=>
string(0) ""
["txtPhoneNo"]=>
string(10) "4045506561"
["drpMajor"]=>
NULL
["drpStatus"]=>
NULL
["regmain"]=>
NULL
["chkDental"]=>
string(1) "0"
["chkDO"]=>
NULL
["chkMD"]=>
NULL
["chkMDPHD"]=>
NULL
["chkNursin"]=>
NULL
["chkOPT"]=>
NULL
["chkPA"]=>
NULL
["chkPH"]=>
NULL
["chkPharm"]=>
NULL
["chkPOD"]=>
NULL
["chkPostBac"]=>
NULL
["chkVet"]=>
NULL
【问题讨论】:
啊,好的,你能把代码贴在你使用 foreach 循环的地方吗?换句话说,你说foreach($object as $key=>$value)
的地方改为foreach($object[0] as $key=>$value)
。本质上,您当前循环的是 Array 对象,而不是索引 0 处的对象。
foreach($regs as $key=>$value) var_dump($key, $value);
@ParahatMelayev 写的是你需要的,只有当你知道要迭代的对象的确切索引时,你可以只使用一个 foreach,如果没有,并且你的文件中有多个对象数组,只是双倍的疼痛
k,所以使用foreach($regs[0] as $key=>$value)
现在,它像这样返回: string(9) "txtEmplid" string(7) "0134754" string(8) "txtFname" string(0) ""
【参考方案1】:
您可以使用foreach
循环访问对象属性
foreach($array as $key => $object)
foreach($object as $property => $value)
echo "$property : $value" . php_EOL;
【讨论】:
见php手册page for foreach。它指定 foreach 适用于对象属性,并且有 $key=>$value 语法。【参考方案2】:使用get_object_vars ( object $object )
$vars = get_object_vars ( $object );
foreach($vars as $key=>$value)
var_dump($key);
var_dump($value);
或者只是迭代对象本身
foreach($object as $key=>$value)
var_dump($key);
var_dump($value);
-- 编辑 2
在这里,您将在一行中获得键和值
$string = "";
foreach($regs as $object)
foreach($object as $key=>$value)
$string += "$key=$value ";
echo $string;
如果这不是你所需要的,我一无所知..
【讨论】:
我使用了您的第二个代码示例并得到了与我现在基本相同的东西。我不能像我需要的那样只回显 $key 值或 $value 值。我做错了什么? 不知道你在没有代码的情况下做错了什么? :D 使用您现在使用的当前循环/foreach 结构编辑您的帖子,让我们从那里看看 这不起作用 var_dump($key, $value);但这确实 echo $key 和 echo $value 这正是我想要的。谢谢。 现在,我可以高兴地去睡觉了。 :-) 哈哈,干杯 ;) fyi,var_dump
意思是“变量转储”,这是一种调试方法,看它有什么样的值,它是什么类型等等。echo
上另一方面“显示”解析器/html上的值,或者说很简单,在浏览器中:P以上是关于循环 OBJECT 并获取 key 和 value的主要内容,如果未能解决你的问题,请参考以下文章