在多维数字阵列上使用foreach

时间:2015-10-15 20:36:25

标签: php arrays foreach

我试图在多维数组上使用foreach循环,并发现它并没有按照我预期的方式完成。是否存在多维数组的foreach循环,或其他方法?

$array[0][0] = "a";
$array[0][1] = "b";
$array[0][2] = "c";

foreach($array as $a) {

    echo $a."<br>";

}

结果:

Nothing

需要的结果:

a
b
c

5 个答案:

答案 0 :(得分:2)

这是因为$a仍然是一个数组。如果您使用print_r(),您会看到:

foreach($array as $a) {

    print_r($a);

}

结果:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

要对抗嵌套数组,您必须运行第二个foreach()循环来获取值:

foreach($array as $a) {

    foreach($a as $value){ // loop through second array
        echo $value . "</ br>";
    }

}

答案 1 :(得分:2)

你也可以试试这个:

 foreach($array[0] as $key => $value){
   echo $value . "<br>":
  }
在此代码中

$array您正在访问0,0,0的密钥,因此无法打印它。

在此代码中

$array[0]您访问密钥0,1,2以及值a,b和c

答案 2 :(得分:1)

你需要两个循环。一个循环第一个数组,一个循环内部数组。

foreach($array as $key) {
   foreach($key as $val) {
       echo $val;
    }
}

答案 3 :(得分:1)

尝试嵌套另一个foreach ......

$array[0][0] = "a";
$array[0][1] = "b";
$array[0][2] = "c";

foreach($array as $a) {
  foreach($a as $val){
    echo $val."<br>";
  }
}

答案 4 :(得分:1)

因为没有其他人提到它:

<?php
$array[0][0] = "a";
$array[0][1] = "b";
$array[0][2] = "c";


echo implode('<br>',$array[0]);

http://codepad.viper-7.com/SC9PLI