2013-11-15 3 views
0

У меня очень сложный многомерный массив ($ tree). Я получаю этот массив в качестве ссылки.PHP: поиск, сохранение, массив массива адресов по индексу

Теперь мне нужно найти в нем определенный ключ и вставить туда данные.

Найти необходимый ключ легко. Функция выполняет поиск массива и возвращает путь $ path. Например, он возвращает $path = array('index1', 'index2', 'index3'). Это означает, что мне нужно будет присвоить свои данные, например $tree['index1']['index2']['index3'] = $some_data_i_needed_to_insert.

Теперь проблема заключается в том, что я не могу адресовать этот индекс массива из адреса, который я получаю от функции seatch.

Я пытался так:

<?php 
$path = '[\'index1\'][\'index2\'][\'index3\']'; 
$tree{$path} = $some_data_i_needed_to_insert; 
?> 

Есть ли способ для решения индекса массива в моем случае?

+0

Непонятно, что вы просите. –

+0

Можем ли мы увидеть первую функцию? Это может помочь прояснить вопрос. – jameslafferty

+0

Почему вы делаете '$ tree {'[1334] [\' # ниже \ '] [3242]'}'? –

ответ

2

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

$path = array('1334', '#below', '3242'); 
$node =& $complexArray; 

foreach ($path as $key) { 
    $node =& $node[$key]; 
} 

$node = $data; 
+0

Ты потрясающий. –

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