如何将字符串中的数组路径评估为实际数组路径

时间:2018-12-27 13:48:54

标签: php arrays

我在变量$path中保存了以下文本字符串:

$path = "['parent']['son']"; 

我需要使用上面的字符串来达到以下变量的内容:

$_SESSION['parent']['son']

我想我可以使用eval函数,但是我做不到。我该如何实现?

1 个答案:

答案 0 :(得分:1)

无需评估。
展开字符串并删除不需要的字符串,然后循环数组并在会话数组中进行挖掘。

$path = "['parent']['son']"; 

$arr = explode("']['", $path);

$ret = $_SESSION;

foreach($arr as $val){
    $key = str_replace(["'", "]", "["], "", $val);
    $ret = $ret[$key];
}

var_dump($ret);

请参见工作示例:
https://3v4l.org/KgYOA

另外请记住,除非确实需要,否则不建议使用eval。
如上所示,通常可以使用较少危险的功能来完成相同的事情。