假如我知道数组中某一个元素的路径,我怎么取到这个元素的值?
下面这段代码报错,该怎么解决?大家有没有好的办法?
$m = ['a'=>['b'=>['c'=>'@@@@@']]];
$x = 'a.b.c';
$y = str_replace('.','\'][\'',$x);
$y = 'm[\''.$y.'\']';
echo $$y;
会报错:
Notice: Undefined variable: m['a']['b']['c'] in /web/root/index.php on line 9
动态变量名只对变量有效,对数组元素是不行的,
'm["a"]["b"]["c"]'
就算前面加$, 会把整个字符串当做变量,自然是找不到。简单的你可用个循环
?首先你打印的echo后面的变量$y多了个
$
符号,其次如果你想获取@@@@@
,直接$m['a']['b']['c']
其实你写的已经对了,不要着急问,多看一眼你的代码
个人觉得,面对这种问题应该使用考虑使用递归来处理,而不是通过字符串替换。
如果你用的laravel框架,