我试图在多维数组上使用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
答案 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]);