PHP-foreach循环和多维数组
关于多维数组和foreach循环,这里有很多问题/答案,但我还没有找到一个特别适用于我的案例。如果你不这么想,请告诉我 我的阵列结构如下,并输出到CodeIgniter视图:PHP-foreach循环和多维数组,php,codeigniter,multidimensional-array,foreach,nested-loops,Php,Codeigniter,Multidimensional Array,Foreach,Nested Loops,关于多维数组和foreach循环,这里有很多问题/答案,但我还没有找到一个特别适用于我的案例。如果你不这么想,请告诉我 我的阵列结构如下,并输出到CodeIgniter视图: Array ( [2] => Array //this is the unique user ID ( [name] => Joe Schmoe [cars] => Array (
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。如果要处理每一行,应该将代码(回音)放入循环中 另一种选择是使用。它将为多维数组中的每个值调用回调函数 [编辑] 您得到的行也不是对象。它仍然是一个数组。设法
echo $row['cars_name'];
我想这对你有用
foreach ($results as $result) {
if(is_array($result['cars'])){
foreach ($result['cars'] as $car) {
echo $car['cars_name'];
}
}
}
您还试图通过类属性访问符号访问数组元素 我在尝试回显数组元素时遇到了一个
错误,试图获取非object的属性,这是因为它不是object,而您的行为就像它是一个一样。请参阅我答案中的编辑。您正在尝试访问循环外部的循环变量。把这种回声放在最内心深处——一个没有理由或没有提供帮助就被否决的人?没有爱在那里丢失…感谢@goleztrol的评论-我在循环中尝试了,但仍然得到相同的尝试获取非对象的属性错误--@torrecho$row['cars_name'代码>而不是echo$row->cars\u name