Maison >développement back-end >tutoriel php >Comment convertir des tableaux multidimensionnels en tableaux 2D avec des clés de notation par points en PHP ?
Conversion de tableaux multidimensionnels en tableaux 2D avec des clés de notation par points en PHP
La structure de tableau de PHP permet l'utilisation de la notation par points, qui fournit un moyen pratique d’accéder aux éléments du tableau imbriqués. Cependant, il existe des scénarios dans lesquels la conversion d'un tableau multidimensionnel en un tableau 2D avec des clés de notation par points est nécessaire.
Problème :
Étant donné un tableau multidimensionnel, l'objectif est de transformez-le en un tableau 2D où chaque élément se voit attribuer une clé notée par des points représentant son chemin dans la structure du tableau d'origine.
Solution :
Utilisation de RecursiveIteratorIterator et RecursiveArrayIterator classes nous permet de parcourir le tableau multidimensionnel de manière récursive. Pendant le parcours, les clés sont accumulées en fonction de la profondeur de l'itération. Les valeurs feuille du tableau sont ensuite attribuées aux clés notées par points construites, ce qui donne le tableau 2D souhaité.
Code :
<code class="php">$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray)); $result = array(); foreach ($ritit as $leafValue) { $keys = array(); foreach (range(0, $ritit->getDepth()) as $depth) { $keys[] = $ritit->getSubIterator($depth)->key(); } $result[ join('.', $keys) ] = $leafValue; }</code>
Sortie :
Array ( [key1] => value1 [key2.subkey] => subkeyval [key3] => value3 [key4.subkey4.subsubkey4] => subsubkeyval4 [key4.subkey4.subsubkey5] => subsubkeyval5 [key4.subkey5] => subkeyval5 )
En utilisant la nature récursive des classes d'itérateurs et la construction de clés notées par points pendant le parcours, cet extrait de code convertit efficacement les tableaux multidimensionnels en tableaux 2D avec des clés de notation par points.
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!