У меня возникли трудности с созданием вложенного массива массивом ключей и назначением значения для последнего вложенного элемента.
Например, давайте $value = 4;
и $keys = ['a', 'b', 'c'];
Конечным результатом будет:
[ 'a' => [ 'b' => [ 'c' => 4 ] ] ]
Я пробовал рекурсию, но безуспешно. Любая помощь будет принята с благодарностью.
вам не нужна рекурсия, просто сделайте это справа налево:
$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 ) ) )