clé de tableau (a_b_c) vers un tableau imbriqué

Par Amstramgram, il y a 4 ans


Hello,

ça fait un petit moment que je me retourne le cerveau pour resoudre ce petit probleme mais sans succés.

J'ai un tableau de clé/valeur de ce type :

[ "address_billing_city" => "cityName", "phone_personal_mobile" => "0600000000", "phone_personal_home" => "0300000000" ]

ce que je veux obtenir c'est un tableau imbriqué à partir de la clé du premier tableau et mettre la valeur dans la dernière, genre ca :

[ "address" => [ "billing" => [ "city" => "cityName" ] "personal" => [ "mobile" => "0600000000", "home" => "0300000000" ] ] ]

J'ai essayé plusieurs variantes avec un while, avec un for qui recupérer les clés par l'index. Mais la j'ai tellement cherché dans tous les sens que je n'arrive plus à réfléchir.
Je pense que le prochiane essaie, je vais essayer avec une fonction qui s'auto-rappel.

Si vous avez une piste.

Merci.

1 réponse

Amstramgram, il y a 4 ans

ah au bout d'un moment, on fini par trouver.

private function pathToArray(&$array, string $path, &$value) { $pathParts = explode("_", $path); $current = &$array; foreach($pathParts as $key) { if (!is_array($current)) { $current = []; } $current = &$current[$key]; } $backup = $current; $current = $value; return $backup; }