动态将索引追加到变量

Dynamically append indexes to variable

提问人:ambe5960 提问时间:7/25/2015 最后编辑:ambe5960 更新时间:7/25/2015 访问量:201

问:

所以我有不同长度的数组

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']'

但是我必须能够评估这个字符串,我不知道该怎么做。

我认为答案可能就在变量的某个地方,但我不确定如何去做。

衷心感谢您的任何帮助。非常感谢!

php foreach 变量

评论


答:

0赞 jedrzej.kurylo 7/25/2015 #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赞 ambe5960 7/25/2015
谢谢!我必须添加很多东西,因为我正在做的事情有多个部分,但这绝对应该让我走上正确的道路。非常感谢。