2015-01-31 2 views
0

Я хотел заполнить массив-ассоциированный элемент из переменных из другого массива.Значения массива в качестве ключей-помощников

У меня есть массив, как этот

$keys = array("key1", "key2", "key3"); 

и теперь я хочу, чтобы заполнить массив с этими ключами, как этот

$someArray["key1"]["key2"]["key3"] = "some value"; 

и, конечно, он будет работать так, как хорошо

$someArray[$keys[0]][$keys[1]][$keys[2]] = "some value"; 

Но количество ключей может изменяться, и они различны для каждого цикла. Я хочу перевести некоторые данные в иерархическую структуру.

Так что я хотел бы сделать это динамически из массива $ keys.

На данный момент я создаю Json String, нажимаем декодированный Json на $ someArray и использую array_merge на нем, но я думал, что должен быть более элегантный способ.

Спасибо ребята

ответ

1

использовать цикл с эталонным переменной:

$someArray = array(); 
$where =& $someArray; 
foreach (array_slice($keys, 0, -1) AS $key) { 
    $where[$key] = array(); 
    $where =& $where[$key]; 
} 
$where[$keys[count($keys)-1]] = "some value"; 
+0

спасибо так много - я понятия не имел, что вы используете ссылочные переменные до сих пор :) – KddC

Смежные вопросы