我尝试了很多不同的方法。我设法让第一部分工作,但第二部分得到水果名称不起作用。
我有一个存储在$food
中的对象,此对象的print_r()
输出如下所示:
Food Object
(
[id] => 1
[values] => Array
(
[name] => Myfood
)
[objects] => Array
(
[0] => Fruits Object
(
[id] => 1
[values] => Array
(
[name] => My Fruits
)
[objects] => Array
(
[0] => FruitType Object
(
[id] => 1
[values] => Array
(
[name] => Orange1
)
)
)
)
)
)
此代码成功显示“Myfood”:
foreach ($food->values as $key => $value) {
echo "$key => $value";
}
此代码成功显示“我的水果”:
echo '<br/>';
foreach ($food->objects as $id => $owner) {
foreach ($owner->values as $key => $value) {
echo "$key => $value";
}
}
我需要第二个显示FruitType
对象值Orange1
的代码块,我尝试过一些东西,但效果不好。感谢
答案 0 :(得分:1)
看起来你遇到了所有开发人员面临的最大绊脚石...命名事物。我可能没有做得太好,因为我不能100%确定你的最终目标是什么,但就嵌套循环而言你是在正确的轨道上。
foreach ($food->objects as $i => $obj) {
echo "name => {$obj->values['name']}\n";
foreach ($obj->objects as $j => $type) {
foreach($type->values as $key => $val){
echo " $key => $val\n";
}
}
}
查看对象的结构 - 递归迭代可能更具可读性。
答案 1 :(得分:0)
为什么不使用get_object_vars()
功能?
在此处查看更多内容:http://php.net/manual/fr/function.get-object-vars.php