Задать вопрос

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

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

Есть красивый способ без цикла, без рекурсии?
  • Вопрос задан
  • 103 просмотра
Подписаться 3 Средний 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Решения вопроса 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']
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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