Назначить произвольно глубокому индексу массива?

Если у меня есть массив, который соответствует последовательно рекурсивным ключам в другом массиве, как лучше всего присвоить значение этому «пути» (если вы хотите его так назвать) ?

Например:

$some_array = array();
$path = array('a','b','c');
set_value($some_array,$path,'some value');

Теперь $ some_array должно быть равно

array(
  'a' => array(
    'b' => array(
      'c' => 'some value'
)))

На данный момент я использую следующее:

function set_value(&$dest,$path,$value) {
  $addr = "\$dest['" . implode("']['", $path) . "']";
  eval("$addr = \$value;");
}

Очевидно, это очень наивный подход и представляет собой безопасность риск, так как бы вы это сделали?

5
задан Austin Hyde 20 June 2011 в 18:25
поделиться