$shop = array(
array("Rose", 1.25 , 15),
array("Daisy", 0.75 , 25),
array("Orchid", 1.15 , 7)
);
for($i = 0; $i <= count($shop); $i++){
foreach($shop[$i] as $key => $val)
echo $key . ' = ' . $val . '<br>';
}
所以这是我得到的输出:
0 =玫瑰
1 = 1.25
2 = 15
0 =雏菊
1 = 0.75
2 = 25
0 =兰花
1 = 1.15
2 = 7
============================================
但后来我收到了一个错误:
警告:为foreach()提供的参数无效
我想知道的是如何纠正这一点,以及是否有更有效的方法来编写我想要输出的内容?
谢谢你们。
答案 0 :(得分:1)
问题是,您使用<=
代替<
。所以你的for循环向前走了一步,数组超出范围。
for($i = 0; $i < count($shop); $i++){
foreach($shop[$i] as $key => $val)
echo $key . ' = ' . $val . '<br>';
}
答案 1 :(得分:0)
foreach ($Array AS $Values){
if (is_array($Values)){
foreach ($Values AS $Inner){
echo $Inner;
}
}else{
echo $Values;
}
}
我个人会选择2个foreach循环。检查传递的值是否为数组(如果是)。介入。如果没有,请打印值
答案 2 :(得分:0)
迭代数组时,请始终使用foreach
而不是for
循环。
foreach ($shop as $foo) {
foreach ($foo as $key => $val) {
echo $key . ' = ' . $val . '<br />';
}
}