2015-10-15 6 views
-1

Я попытался использовать цикл 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 
+1

'array_walk_recursive ($ array, function ($ v, $ k) {echo $ v."
";});' – Rizier123

ответ

2

Вы также можете попробовать следующее:

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

$array в этом коде вы получаете доступ к ключу 0,0,0, чтобы он не печатал его.

$array[0] в этом коде вы оба доступа к ключевым 0,1,2 и значения а, Ь и с

1

Вам нужны две петли. Один для петли первого массива, и один для петли внутреннего.

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

Все зависит от того, сколько слоев имеет многомерный массив, правильно? Итак, для трех слоев потребуется три петли, да? – frosty

+0

@frosty - да. Если вы не знаете количество слоев, вы можете использовать [рекурсивный цикл] (http://stackoverflow.com/questions/10928993/is-there-a-way-to-loop-through-a-multidimensional- массив без всезнающего-его-DEP). –

1

Попробуйте вложенности другой Еогеасп ...

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

foreach($array as $a) { 
    foreach($a as $val){ 
    echo $val."<br>"; 
    } 
} 
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

хорошо, так как никто не упомянул об этом:

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


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

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

+0

Из кодового паук я всегда ожидаю 8 различных способов: https://3v4l.org/qmD3K:] – Rizier123

Смежные вопросы