嵌套数组的设定值可以说我有这样的代码:PHP:使用可变关键
$array = [
'a'=> [
'b' => [
'c'=>'some value',
],
],
];
$array['a']['b']['c'] = 'new value';
当然这是工作,但我想要的是更新使用可变这个“C”键,这样的事情:
$keys = '[a][b][c]';
$array{$keys} = 'new value';
但键treatening为字符串,这就是我得到:
$array['[a][b][c]'] = 'new value';
所以我想一些帮助,向我展示如何在不使用eval()的情况下完成这项工作的正确方法。
顺便说一句,可以有任意数量的阵列巢的,所以这样的事情是不是一个很好的答案:
$key1 = 'a';
$key2 = 'b';
$key3 = 'c';
$array[$key1][$key2][$key3] = 'new value';
多亏了工作,这就是我所需要的。是的,IAM使用join()函数将字符串定义为a.b.c,如果有人需要,可以使用代码: function keyArray($ array = [],array $ path = []){result = array(); ($ array as $ key => $ val){ $ currentPath = array_merge($ path,array($ key)); if(is_array($ val)){ $ result = array_merge($ result,keyArray($ val,$ currentPath)); } else { $ result [] = join('。',$ currentPath); } } return $ result; } –