Создание вложенного массива по массиву ключей

У меня возникли трудности с созданием вложенного массива массивом ключей и назначением значения для последнего вложенного элемента.

Например, давайте $value = 4; и $keys = ['a', 'b', 'c'];

Конечным результатом будет:

 [ 'a' => [ 'b' => [ 'c' => 4 ] ] ] 

Я пробовал рекурсию, но безуспешно. Любая помощь будет принята с благодарностью.

Solutions Collecting From Web of "Создание вложенного массива по массиву ключей"

вам не нужна рекурсия, просто сделайте это справа налево:

 $a = $value; for ($i = count($keys)-1; $i>=0; $i--) { $a = array($keys[$i] => $a); } 

или даже более короткая версия от @felipsmartins:

 $a = $value; foreach (array_reverse($keys) as $valueAsKey) $a = [$valueAsKey => $a]; 

Вы можете попробовать.

 $value = 4; $keys = ['a', 'b', 'c']; $a = $value; $i=count($keys)-1; foreach($keys as $key){ $a = array($keys[$i] => $a); $i--; } print_r($a); - $value = 4; $keys = ['a', 'b', 'c']; $a = $value; $i=count($keys)-1; foreach($keys as $key){ $a = array($keys[$i] => $a); $i--; } print_r($a); 

Вывод

 Array ( [a] => Array ( [b] => Array ( [c] => 4 ) ) )