Maison > développement back-end > tutoriel php > Comment convertir efficacement des chaînes de syntaxe de points en tableaux multidimensionnels en PHP ?

Comment convertir efficacement des chaînes de syntaxe de points en tableaux multidimensionnels en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-01 16:01:11
original
487 Les gens l'ont consulté

How to Efficiently Convert Dot Syntax Strings to Multidimensional Arrays in PHP?

Conversion de chaînes de syntaxe de points en tableaux multidimensionnels en PHP

Question :

Comment les chaînes de syntaxe de points, telles que " this.that.other", être efficacement converti en tableaux multidimensionnels dans PHP ?

Réponse :

Une solution très efficace consiste à utiliser une fonction récursive comme celle ci-dessous :

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

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

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

Cette fonction parcourt de manière itérative le tableau, en utilisant le '.' comme séparateur, en créant toutes les clés manquantes en cours de route, jusqu'à ce qu'il atteigne la propriété souhaitée et définisse sa valeur.

Par exemple, avec l'exemple de chaîne suivant : "s1.t1.column.1 = size:33 %", la fonction générerait une structure de tableau équivalente à :

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

print_r($source); // Outputs: ['s1' => ['t1' => ['column' => ['1' => 'size:33%']]]]
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