Так что у меня есть массивы разной длины
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']'
Но тогда я должен был бы иметь возможность оценить эту строку, и я не знаю, как это сделать.
Я думаю, что ответ может лежать где-то в переменных переменных, но я не уверен, как это сделать.
Искреннее спасибо за любую помощь. Это высоко ценится!
Я думаю, что следующая рекурсивная функция будет решением здесь:
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));
}
Других решений пока нет …