Как перебрать строку в путь массива?

Задача: есть строка вида: value.id.price (Длина может меняться, например: value.id.price.data.get.value)
Эта строка отправляется в бекэнд, где php из нее должен собрать вложенность массива: $array['value']['id']['price']

Как собственно реализовать?
Не спрашивайте почему именно так, так сложилось :)
  • Вопрос задан
  • 70 просмотров
Решения вопроса 2
@entermix
Комментировать
rozhnev
@rozhnev Куратор тега PHP
Fullstack programmer, DBA, медленно, дорого
Разбиваем строку на массив слов и в цикле добавляем подмассив каждый раз перемещая указатель
<?php
$input = 'value.id.price.data.get.value';

$result = [];

$r = &$result;
foreach(explode('.', $input) as $k) {
    $r[$k] = [];
    $r = &$r[$k];
}

print_r($result);


https://phpize.online/sql/mysql57/undefined/php/ph...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@pantsarny
function assignArrayByPath(&$arr, $path, $value, $separator='.') {
$keys = explode($separator, $path);

foreach ($keys as $key) {
$arr = &$arr[$key];
}

$arr = $value;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы