无法在多维数组中按预期生成结果。
警告:为foreach()提供的参数无效
$menu = array ('COL1' => array('1' => array('a', 'b', 'c', 'd'), '2', '3', '4'), 'COL2' => array('1', '2', '3', '4'), 'COL3' => array('1', '2', '3', '4'), 'COL4' => array('1', '2', '3', '4') );
foreach ($menu as $col => $value) {
echo '<hr>'.$col;
foreach ($value as $item => $subitem) {
echo '<br>'.$item;
foreach ($subitem as $childitem) {
echo '<br>'.$childitem;
}
}
}
欲望输出:
结果应为 -
COL1,1,a,b,c,d,2,3,4,
COL2,1,2,3,4,
COL3,1,2,3,4,
COL4,1,2,3,4
答案 0 :(得分:0)
第三级不是所有时间都是数组。可能是你的$菜单数组有不正确的数据。但事实并非如此,你必须在第二级检查$subitem
是否为数组。
foreach ($menu as $col => $value) {
echo '<hr>'.$col;
foreach ($value as $item => $subitem) {
echo '<br>'.$item;
if(is_array($subitem)){
foreach ($subitem as $childitem) {
echo '<br>'.$childitem;
}
} else {
echo '<br>'.$subitem;
}
}
}
答案 1 :(得分:0)
警告来自此数组的内部foreach
循环:
'COL1' => array('1' => array('a', 'b', 'c', 'd'), '2', '3', '4')
第一次外循环运行
$col = 'COL1'
和$value=array(...)
;
内循环第一次执行$item='1'
和$subitem=array(..)
。
但内循环第二次运行时,第二个索引不存在关联数组。它只是一个值,因此:$item='2'
但$subitem
没有值
答案 2 :(得分:0)
做这个foreach的块:
foreach ($menu as $col => $value) {
echo '<hr>'.$col;
if(is_array($value)){
foreach ($value as $item => $subitem) {
if(is_array($subitem)){
echo '<br>'.$item;
foreach ($subitem as $childitem) {
echo '<br>'.$childitem;
}
}else{
echo '<br>'.$subitem;
}
}
}
}
菜单数组
Array
(
[COL1] => Array
(
[1] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[2] => 2
[3] => 3
[4] => 4
)
[COL2] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[COL3] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[COL4] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
)
<强>结果强>
COL1
1
a
b
c
d
2
3
4
COL2
1
2
3
4
COL3
1
2
3
4
COL4
1
2
3
4