所以我有不同长度的数组
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']'
但是我必须能够评估这个字符串,我不知道该怎么做。
我认为答案可能存在于变量变量中,但我不知道如何解决这个问题。
真诚地感谢您的帮助。非常感谢!
答案 0 :(得分:0)
我认为以下递归函数将是解决方案:
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));
}