Изменить значение массива с ключами в строке

327
21 января 2017, 13:47

Существует массив:

$array = ['key1'=>['key2'=>'val']];

В строке через точку указаны ключи массива:

$keys_string = 'key1.key2';

Необходимо изменить значение массива используя ключи указанные через точку в переменной $keys_string.

Answer 1

Если только 2 уровня вложенности

$keys = explode(".", $keys_string);
$array[$keys[0]][$keys[1]] = 'val'

Или если не 2 уровня

$keys = explode(".", $keys_string);
foreach($item as $keys) {
   $val = &$array[($item]; 
} 
$val = 'test';

ОБНОВЛЕНО

Суть - добраться по ссылке изменить массив

$array = ['key1'=>['key2'=>'val']];
        $keys_string = 'key1.key2';
        $keys = explode(".", $keys_string);
        foreach($keys as $key) {
            $val = &$array[$key];
        }
        $val = 'test';
        var_dump($array);
READ ALSO
Запуск видео при скроллинге

Запуск видео при скроллинге

Подскажите, как запустить youtube видео при условии того что пользователь отскролил 1585px

522
Как сделать карту зависимой от options

Как сделать карту зависимой от options

Есть такой код, не обращайте внимания большой объем, суть вопроса просто , как сделать чтобы карта менялась зависимо от options , пока получается...

362
Как сделать но с JSON форматом?

Как сделать но с JSON форматом?

Если просто вывести результат (без ajax) то работают ссылки как надо, а если я использую ajax json то получаю такой эффект что не работают ссылки...

296
Chrome extension inject content script

Chrome extension inject content script

Добрый деньПрежде не сталкивался с Chrome Extensions, но нужно на скорую руку накидать скелет расширения с функционалом примерным Greasemonkey (на том...

441