Как поместить значение в ассоциативный массив по «пути» состоящем из ключей-значений массива?

Есть массив содержащий ключи. Допустим:
$a = ['key1','key2','key3']
Как поместить значение в другой массив по этому пути? Т.е. получить в результате:
[
key1=>[key2=>[key3=>'value']]
]

Есть красивый способ без цикла, без рекурсии?
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@rPman
Без цикла можно использовать array_reduce только массив отреверсить
$a=['key1','key2','key3'];
$value='test';
$r=array_reduce(array_reverse($a),function($c,$i) use ($value) {return [$i=>(is_null($c)?$value:$c)];});
var_dump($r);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
https://github.com/adbario/php-dot-notation не совсем то,но похоже - использовать записи вида "key.subkey" для доступа к элементу ['key']['subkey']
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы