"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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 ?

Publié le 2025-01-15
Parcourir:712

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 élégamment cette conversion :

$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;
}

Explication :

  • Les classes RecursiveIteratorIterator et RecursiveArrayIterator sont utilisées pour parcourir le tableau imbriqué de manière récursive.
  • Au cours de chaque itération, le La méthode key du RecursiveArrayIterator est utilisée pour capturer la clé actuelle du array.
  • La méthode getSubIterator($profondeur) est utilisée pour récupérer le sous-itérateur à une profondeur spécifique, nous permettant de parcourir des tableaux imbriqués.
  • La plage(0, $ritit- La fonction >getDepth()) crée un tableau de profondeurs, passant du tableau le plus interne au tableau le plus externe.
  • 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 tableau $result.

Sortie :

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

$newArray = array(
    'key1' => 'value1',
    'key2.subkey' => 'subkeyval',
    'key3' => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey4.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5' => 'subkeyval5'
);
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3