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 № 1Isso 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.