PHP:如何使用foreach打印多维数组元素?

时间:2015-10-16 01:23:02

标签: php arrays loops multidimensional-array foreach

$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()提供的参数无效

我想知道的是如何纠正这一点,以及是否有更有效的方法来编写我想要输出的内容?

谢谢你们。

3 个答案:

答案 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 />';
    }   
}