Maison > développement back-end > tutoriel php > Comment puis-je convertir de manière récursive des chaînes de syntaxe de points en tableaux multidimensionnels en PHP ?

Comment puis-je convertir de manière récursive des chaînes de syntaxe de points en tableaux multidimensionnels en PHP ?

Patricia Arquette
Libérer: 2024-11-29 05:28:17
original
646 Les gens l'ont consulté

How Can I Recursively Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

Comment créer un tableau multidimensionnel à partir de la syntaxe de points en PHP

En PHP, conversion de la syntaxe de points (comme "this.that.other" ) dans un tableau multidimensionnel peut être une tâche utile pour organiser les données. Voici comment réaliser cette conversion :

Utilisation d'une fonction récursive :

La fonction suivante, assignArrayByPath(), peut parcourir de manière récursive la syntaxe des points et créer un tableau multidimensionnel :

function assignArrayByPath(&$arr, $path, $value, $separator='.') {
    $keys = explode($separator, $path);

    foreach ($keys as $key) {
        $arr = &$arr[$key];
    }

    $arr = $value;
}
Copier après la connexion

Comment ça marche :

  1. La fonction prend quatre paramètres :

    • $arr : Le tableau multidimensionnel à modifier.
    • $path : Le chemin de la syntaxe de points représentant la structure de clé souhaitée.
    • $value : La valeur à attribuer à la clé finale.
    • $separator : (Facultatif) Le délimiteur utilisé dans la syntaxe par points (par défaut .)
  2. La fonction éclater() divise le chemin en clés individuelles.
  3. La fonction parcourt chaque clé, en utilisant des références pour modifier les éléments appropriés dans le tableau $ arr.
  4. Si une clé n'existe pas, elle est créée et affectée à la référence $arr.
  5. Enfin, la $value est attribué à la dernière clé du tableau.

Exemple :

Pour convertir la syntaxe de points "s1.t1.column.1" en un tableau multidimensionnel, utilisez le code suivant :

$source = [];
assignArrayByPath($source, 's1.t1.column.1', 'size:33%');

echo $source['s1']['t1']['column']['1']; // Outputs: 'size:33%'
Copier après la connexion

Cette approche fournit une méthode flexible et récursive pour convertir une syntaxe de points complexe en tableaux multidimensionnels en PHP, garantissant que même les clés inexistantes sont automatiquement créé. Cela peut être particulièrement utile pour analyser des structures de données imbriquées dans un format de tableau structuré.

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