/ / executando loop em array sem índice incremental - php, arrays, loops, array multidimensional

executando loop em array sem indexação incremental - php, arrays, loops, array multidimensional

Eu tenho esse array multi-dimensional arbitrário.

Array (

[0] => Array
(
[0] => 0
[1] => 1
[2] => 2
)

[5] => Array
(
[0] => 0
[1] => 1
[2] => 2
)

[10] => Array
(
[0] => 0
[1] => 1
[2] => 2
)

[15] => Array
(
[0] => 0
[1] => 1
[2] => 2
)

[1] => Array
(
[0] => 2
[1] => 1
[2] => 2
)

[2] => Array
(
[0] => 2
[1] => 1
[2] => 2
)

)

Eu quero executar um loop for para extrair os dados decada subarray. Mas não posso fazer um loop for simples porque o índice (0,5,10,15,1) é arbitrário. Existe uma maneira de executar um loop for, em seguida, pule a sub-matriz se ela estiver vazia?

Obrigado!

Respostas:

3 para resposta № 1

Isso levará $array e loop embora, ecoando as teclas.
Você tem um array em um array, você pode colocar um foreach em um foreach:

// First we take the main array ($array) and loop though its values
foreach( $array as $main_key =>$sub_array){
echo $main_key.": <br />n"; // echo the key, some extra html to format

// the values of the mainarray are arrays themselves, just loop again:
foreach($subarray as $sub_key =>$subvalue){
echo "- ".$subvalue."<br />n";
}
}

Há uma armadilha aqui se você foreach em um foreach:

foreach($array as $key =>$value){
foreach($value as $key=>$value){ /* ... */; }
}

Isto irá criar resultados muito estranhos. O foreach interno usa os mesmos nomes de parâmetros e estraga tudo.