[英]PHP - foreach loop and multidimensional array
因此在SO上有很多关于多维数组和foreach循环的问题/答案,但我还没有找到一个专门针对我的情况的问题。 如有其他建议,请告知。
我的数组的结构如下,并输出到CodeIgniter视图:
Array
(
[2] => Array //this is the unique user ID
(
[name] => Joe Schmoe
[cars] => Array
(
[112] => Array //this is the unique car ID
(
[cars_name] => Honda
[cars_type] => Sedan
[cars_color] => White
)
[102] => Array
(
[cars_name] => Toyota
[cars_type] => Sedan
[cars_color] => Black
)
[113] => Array
(
[cars_name] => Nissan
[cars_type] => Coupe
[cars_color] => Red
)
)
)
[5] => Array
(
[name] => Buck
[cars] => Array
(
[147] => Array
(
[cars_name] => Tesla
[cars_type] => Sedan
[cars_color] => Yellow
)
)
)
[1] => Array
(
[name] => Mike Mechanic
[cars] => Array
(
[140] => Array
(
[cars_name] => BMW
[cars_type] => SUV
[cars_color] => Blue
)
[145] => Array
(
[cars_name] => MB
[cars_type] => Sedan
[cars_color] => Gray
)
)
)
)
我需要构建嵌套的foreach
循环的帮助,以便可以访问整个数组中的每个元素。
我尝试了这种嵌套的foreach
结构,但这是不行的。
foreach ($results as $data):
if (is_array($data)):
foreach ($data as $value):
if (is_array($value)):
foreach ($value as $row):
endforeach;
endif;
endforeach;
endif;
endforeach;
echo $row->cars_name //returns a non-object error
有人知道如何将这个嵌套循环放在一起吗?
感谢您的帮助,不胜感激。
您正在从循环外部访问$ row。 如果要处理每一行,则应将该代码(回声)放入循环中。
另一种选择是使用array_walk_recursive 。 这将为多维数组中的每个值调用一个回调函数。
[编辑]
您得到的行也不是对象。 它仍然是一个数组。 尝试
echo $row['cars_name'];
我认为这对您有用。
foreach ($results as $result) {
if(is_array($result['cars'])){
foreach ($result['cars'] as $car) {
echo $car['cars_name'];
}
}
}
另外,您还尝试通过类属性访问符号访问数组元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.