Maison >développement back-end >tutoriel php >Comment accéder à un tableau imbriqué à un index spécifique en utilisant foreach en PHP ?
PHP foreach avec Nested Array
Question : Comment accéder à un tableau imbriqué spécifique à l'aide d'une boucle foreach en PHP ?
Considérons le tableau imbriqué suivant :
<code class="php">array( [0] => array( [0] => one [1] => array( [0] => 1 [1] => 2 [2] => 3 ) ) [1] => array( [0] => two [1] => array( [0] => 4 [1] => 5 [2] => 6 ) ) [2] => array( [0] => three [1] => array( [0] => 7 [1] => 8 [2] => 9 ) ) ) );</code>
Le but est de parcourir les valeurs du tableau imbriqué à la clé 1, sans utiliser de comparaison de variables.
Réponse :Il existe deux approches pour y parvenir :
1. Boucles imbriquées (profondeur fixe) :
Cette méthode convient si la profondeur des tableaux imbriqués est connue à l'avance.
<code class="php">foreach ($tmpArray as $innerArray) { if (is_array($innerArray)) { foreach ($innerArray as $value) { echo $value; } } else { echo $innerArray; } }</code>
2. Fonction récursive (profondeur inconnue) :
Cette approche est utilisée lorsque la profondeur des tableaux imbriqués est inconnue. Il s'agit d'une fonction récursive qui parcourt le tableau :
<code class="php">function displayArrayRecursively($arr, $indent='') { if ($arr) { foreach ($arr as $value) { if (is_array($value)) { displayArrayRecursively($value, $indent . '--'); } else { echo "$indent $value \n"; } } } } $tmpArray = array( array("one", array(1, 2, 3)), array("two", array(4, 5, 6)), array("three", array(7, 8, 9)) ); displayArrayRecursively($tmpArray);</code>
Cas spécifique :
Pour accéder uniquement au tableau imbriqué avec les valeurs du troisième niveau (clé 2) , utilisez le code suivant :
<code class="php">foreach ($tmpArray as $inner) { if (is_array($inner)) { foreach ($inner[1] as $value) { echo "$value \n"; } } }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!