Динамически добавлять индексы к переменной

Так что у меня есть массивы разной длины

pathes= array(array('f1e9'),
array('c0d9', '0', 'form_values', '6e13')
);

Для каждого пути я хотел бы использовать каждое значение в качестве индекса для сканирования отдельного массива.

foreach ($pathes as $key => $val){

$new_path = '$array_to_search';

foreach ($val as $index){
$newpath .= '[' . $index . ']';
}
}

Таким образом, в цикле переменная $ new_path будет выглядеть следующим образом:

$new_path = '$array_to_search['f1e9']'

а также

$new_path = '$array_to_search['c0d9']['0']['form_values']['6e13']'

Но тогда я должен был бы иметь возможность оценить эту строку, и я не знаю, как это сделать.

Я думаю, что ответ может лежать где-то в переменных переменных, но я не уверен, как это сделать.

Искреннее спасибо за любую помощь. Это высоко ценится!

1

Решение

Я думаю, что следующая рекурсивная функция будет решением здесь:

function getByPath($value, array $path)
{
if (empty($path)) return $value;
if (!is_array($value)) return;
if (array_key_exists($path[0], $value)) return getByPath($value[$path[0]], array_slice($path, 1));
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]