Maison >développement back-end >Problème PHP >Comment parcourir un tableau multidimensionnel en php
PHP, en tant que langage de programmation côté serveur couramment utilisé, traite souvent des tableaux multidimensionnels. Lors de l'analyse et de la manipulation de tableaux multidimensionnels, une question courante est de savoir comment parcourir les différents niveaux de ces tableaux. Cet article explique comment parcourir des tableaux multidimensionnels en PHP.
En PHP, nous pouvons utiliser la boucle foreach pour parcourir le tableau. Lors de la traversée d'un tableau multidimensionnel, nous pouvons imbriquer des boucles foreach pour accéder tour à tour à chaque niveau du tableau. Voici un exemple simple :
$array = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); foreach ($array as $items) { foreach ($items as $item) { echo $item . ' '; } echo '<br>'; }
Le code ci-dessus produira les résultats suivants :
1 2 3 4 5 6 7 8 9
Comme vous pouvez le voir, nous utilisons d'abord une boucle foreach pour parcourir le premier niveau du tableau multidimensionnel, puis utilisons un boucle foreach à l’intérieur du corps de la boucle pour traverser le deuxième niveau. Cela affichera l’intégralité du tableau multidimensionnel en séquence.
En plus d'utiliser des boucles foreach, nous pouvons également utiliser des fonctions récursives pour parcourir des tableaux multidimensionnels. La fonction récursive fait référence à une technique qui appelle la fonction elle-même pendant le processus de définition de la fonction. Lors de l'accès à un tableau multidimensionnel, nous pouvons écrire une fonction récursive qui continue d'approfondir chaque niveau du tableau jusqu'à ce qu'elle rencontre l'élément le plus interne. Voici un exemple d'utilisation d'une fonction récursive pour parcourir un tableau multidimensionnel :
$array = array( 'name' => '张三', 'age' => 18, 'hobbies' => array( 'reading', 'swimming', 'traveling' ), 'friends' => array( array( 'name' => '李四', 'age' => 20 ), array( 'name' => '王五', 'age' => 22, 'hobbies' => array( 'singing', 'dancing' ) ) ) ); function traverseArray($arr) { foreach ($arr as $key => $value) { if (is_array($value)) { traverseArray($value); } else { echo $key . ' => ' . $value . '<br>'; } } } traverseArray($array);
Le code ci-dessus affichera les résultats suivants :
name => 张三 age => 18 0 => reading 1 => swimming 2 => traveling name => 李四 age => 20 name => 王五 age => 22 0 => singing 1 => dancing
Comme vous pouvez le voir, nous avons d'abord défini une fonction récursive nommée traverseArray et utilisé un foreach boucle à parcourir dans le tableau du corps de la fonction. Dans le corps de la boucle, nous utilisons la fonction is_array pour détecter si l'élément actuel est de type tableau. Si tel est le cas, appelez la fonction traverseArray de manière récursive pour continuer le parcours ; sinon, affichez directement la paire clé-valeur de l'élément.
Il est à noter qu'une fonction récursive peut s'appeler infiniment, entraînant une boucle infinie. Pour éviter cela, nous devons ajouter une condition pour mettre fin à la récursion à l'intérieur du corps de la fonction. Dans l'exemple ci-dessus, nous supposons que tous les éléments hors tableau sont les éléments les plus internes, il n'est donc pas nécessaire de les parcourir à nouveau.
En PHP, nous pouvons également utiliser la fonction array_walk_recursive pour parcourir des tableaux multidimensionnels. Cette fonction est un moyen d'exécuter de manière récursive une fonction de rappel sur un tableau multidimensionnel.
Ce qui suit est un exemple d'utilisation de la fonction array_walk_recursive pour parcourir un tableau multidimensionnel :
$array = array( 'name' => '张三', 'age' => 18, 'hobbies' => array( 'reading', 'swimming', 'traveling' ), 'friends' => array( array( 'name' => '李四', 'age' => 20 ), array( 'name' => '王五', 'age' => 22, 'hobbies' => array( 'singing', 'dancing' ) ) ) ); function output($value, $key) { echo $key . ' => ' . $value . '<br>'; } array_walk_recursive($array, 'output');
Le code ci-dessus affichera les résultats suivants :
name => 张三 age => 18 0 => reading 1 => swimming 2 => traveling name => 李四 age => 20 name => 王五 age => 22 0 => singing 1 => dancing
Nous définissons une fonction de sortie nommée output et la passons dans le deuxième paramètre de la fonction array_walk_recursive Le nom de la fonction est suffisant. Dans le corps de la fonction de sortie, nous produisons directement la paire clé-valeur de l'élément actuel.
Il convient de noter que la fonction array_walk_recursive ne traverse pas les tableaux multidimensionnels couche par couche. Au lieu de cela, il effectue un parcours en profondeur d'abord de chaque élément du tableau, en traversant de manière récursive chaque élément hors tableau, puis en traversant l'élément le plus profond du tableau. Par conséquent, bien que cette fonction soit pratique, elle peut ne pas répondre à des besoins de parcours spécifiques dans certains cas.
Conclusion
En PHP, il existe de nombreuses façons de parcourir des tableaux multidimensionnels, la plus courante étant d'utiliser des boucles foreach et des fonctions récursives. Bien que la fonction array_walk_recursive fournisse également une méthode de parcours facultative, son effet peut ne pas être aussi flexible que les deux autres méthodes. Lors de l'écriture d'un programme, nous devons choisir une méthode de parcours appropriée en fonction de besoins spécifiques.
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!