如:
$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 = '李四';}
長是長了點,不過適應性應該還可以。