Maison > développement back-end > tutoriel php > Comment aplatir des tableaux multidimensionnels en PHP en un tableau bidimensionnel avec des clés de notation par points ?

Comment aplatir des tableaux multidimensionnels en PHP en un tableau bidimensionnel avec des clés de notation par points ?

Susan Sarandon
Libérer: 2024-11-01 07:09:02
original
325 Les gens l'ont consulté

How do you flatten multidimensional arrays in PHP into a two-dimensional array with dot notation keys?

Conversion de tableaux multidimensionnels en tableaux 2D avec des clés de notation par points en PHP

Les tableaux multidimensionnels en PHP offrent un moyen pratique d'organiser des structures de données complexes. Cependant, il peut parfois s'avérer nécessaire d'aplatir un tableau multidimensionnel en un tableau bidimensionnel avec des clés de notation par points. Ceci peut être réalisé en utilisant une approche récursive.

Considérons l'exemple suivant :

<code class="php">$myArray = [
    'key1' => 'value1',
    'key2' => [
        'subkey' => 'subkeyval'
    ],
    'key3' => 'value3',
    'key4' => [
        'subkey4' => [
            'subsubkey4' => 'subsubkeyval4',
            'subsubkey5' => 'subsubkeyval5',
        ],
        'subkey5' => 'subkeyval5'
    ]
];</code>
Copier après la connexion

Pour convertir ce tableau en un tableau bidimensionnel avec des clés de notation par points, nous pouvons utiliser le code suivant :

<code class="php">$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));
$result = [];
foreach ($ritit as $leafValue) {
    $keys = [];
    foreach (range(0, $ritit->getDepth()) as $depth) {
        $keys[] = $ritit->getSubIterator($depth)->key();
    }
    $result[join('.', $keys)] = $leafValue;
}</code>
Copier après la connexion

Ce code itère de manière récursive sur le tableau multidimensionnel, en utilisant les classes RecursiveIteratorIterator et RecursiveArrayIterator. Pour chaque valeur feuille du tableau, il crée une clé de notation par points en joignant les clés des tableaux parent et enfant. Le résultat est un nouveau tableau bidimensionnel avec des clés de notation par points, comme indiqué ci-dessous :

<code class="php">[
    'key1' => 'value1',
    'key2.subkey' => 'subkeyval',
    'key3' => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey4.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5' => 'subkeyval5'
]</code>
Copier après la connexion

Cette technique peut être particulièrement utile lorsque vous travaillez avec des données qui doivent être converties en une structure plate pour le traitement ou l'affichage. .

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