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

Susan Sarandon
Libérer: 2024-11-01 12:03:02
original
251 Les gens l'ont consulté

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>
Copier après la connexion

Sortie :

Array
(
    [key1] => value1
    [key2.subkey] => subkeyval
    [key3] => value3
    [key4.subkey4.subsubkey4] => subsubkeyval4
    [key4.subkey4.subsubkey5] => subsubkeyval5
    [key4.subkey5] => subkeyval5
)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal