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 ?

Comment convertir des tableaux multidimensionnels en tableaux 2D avec des clés de notation par points en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 12:03:02258parcourir

How to Convert Multidimensional Arrays to 2D Arrays with Dot Notation Keys in 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn