Maison > développement back-end > tutoriel php > Comment convertir des tableaux PHP multidimensionnels en tableaux 2D avec des clés de notation par points ?

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

Mary-Kate Olsen
Libérer: 2024-10-28 00:24:29
original
572 Les gens l'ont consulté

How to Convert Multidimensional PHP Arrays to 2D Arrays with Dot Notation Keys?

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

Aplatir des tableaux PHP multidimensionnels en tableaux 2D avec des clés de notation par points peut être bénéfique dans divers scénarios. Il vous permet d'accéder de manière transparente aux valeurs de tableaux imbriqués à l'aide de la notation par points, ce qui améliore la lisibilité et la maintenabilité du code.

Fonction récursive pour convertir des tableaux imbriqués

Heureusement, PHP fournit une fonction récursive fonction qui peut réaliser cette conversion avec élégance :

<code class="php">$result = array();
$ritit = new RecursiveIteratorIterator(new RecursiveArrayIterator($myArray));

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

Explication :

  • Les classes RecursiveIteratorIterator et RecursiveArrayIterator sont utilisées pour parcourir le tableau imbriqué de manière récursive.
  • Lors de chaque itération, la méthode key du RecursiveArrayIterator est utilisée pour capturer la clé actuelle du tableau.
  • La méthode getSubIterator($profondeur) est utilisée pour récupérer le sous-itérateur à un emplacement spécifique. profondeur, nous permettant de parcourir des tableaux imbriqués.
  • La fonction range(0, $ritit->getDepth()) crée un tableau de profondeurs, passant du tableau le plus intérieur au tableau le plus extérieur.
  • La fonction join('.', $keys) concatène les clés du tableau avec un point(.) comme séparateur, créant ainsi la clé de notation par points.
  • La paire clé-valeur résultante est stockée dans le $result array.

Sortie :

Cette fonction générera le tableau 2D souhaité avec des clés de notation par points :

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

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