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
Mary-Kate Olsenoriginal
2024-12-01 16:01:11415parcourir

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

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%']]]]

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!

Déclaration:
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