Maison >développement back-end >tutoriel php >Comment convertir efficacement des 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!