2015-10-16 128 views
0
$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>'; 
    } 

因此,这是我得到的输出:PHP:如何使用foreach打印多维数组元素?

0 =玫瑰

1 = 1.25

2 = 15

0 =雏菊

1 = 0.75

2 = 25

0 =兰花

1 = 1.15

2 = 7

========================= ===================

但后来我得到一个错误:

警告:()提供的foreach无效参数

我想知道的是如何纠正这一点,如果有更有效的方法来编写我试图输出的内容?

谢谢你们。

回答

1

问题是,您使用<=而不是<。所以你的for循环向前走了一步,数组超出了界限。

for($i = 0; $i < count($shop); $i++){ 
    foreach($shop[$i] as $key => $val) 
     echo $key . ' = ' . $val . '<br>'; 
} 
+0

或2的foreach而不是为 – 2015-10-16 01:26:57

+0

我觉得愚蠢。感谢budd! – mincedMinx

+1

没有必要 - 有时候看不到明显的 – Philipp

0
foreach ($Array AS $Values){ 
    if (is_array($Values)){ 
     foreach ($Values AS $Inner){ 
      echo $Inner; 
     } 
    }else{ 
     echo $Values; 
    } 
} 

我个人会去2个foreach循环。检查传递的值是否是数组,如果是。步骤如果不是,则打印值

0

在遍历数组时,始终使用foreach而不是for循环。

foreach ($shop as $foo) { 
    foreach ($foo as $key => $val) { 
     echo $key . ' = ' . $val . '<br />'; 
    } 
}