$array=>['a'=>[ 'b'=>[ 'name'=>'张三' ]]];
请问如何实现下方的访问方式.
$arraynode = ['a','b','name'];//请问如何根据 $arraynode 变量来实现$array{$arraynode}='李四';//这样php会报错.// $array['a']['b']['name']='李四'; 类似这样的效果呢? print($array{$arraynode});//李四
谢谢.
回复内容: 如:
$array=>['a'=>[ 'b'=>[ 'name'=>'张三' ]]];
请问如何实现下方的访问方式.
$arraynode = ['a','b','name'];//请问如何根据 $arraynode 变量来实现$array{$arraynode}='李四';//这样php会报错.// $array['a']['b']['name']='李四'; 类似这样的效果呢? print($array{$arraynode});//李四
谢谢.
$arraynode = ['a','b','name'];$array=[ 'a'=>[ 'b'=>[ 'name'=>'张三' ] ]];echo $array[array_shift($arraynode)][array_shift($arraynode)][array_shift($arraynode)];
你想要的可能是
$arraynode = ['a','b','name'];$array[array_shift($arraynode)][array_shift($arraynode)][array_shift($arraynode)] = 李四;
是这样吗?
修改答案
$pointer = &$array;$found = true;foreach ($arraynode as $key) { if (isset($pointer[$key])) { $pointer = &$pointer[$key]; } else { $found = false; break; }}if ($found) { $pointer = '李四';}
长是长了点,不过适应性应该还可以。
