所以我想说我有以下数组:
$value = 'x';
$foo = Array(
0 => 'arraydepth1',
1 => 'arraydepth2',
2 => 'arraydepth3',
3 => 'arraydepth4'
)
我需要将值作为以下数组的顺序/深度的键:
$bar['arraydepth1']['arraydepth2']['arraydepth3']['arraydepth4'] = 'x';
答案 0 :(得分:4)
绕过这个:
function nest(Array $a, $lastValue) {
$out = [];
$ref =& $out;
foreach ($a as $b) {
$ref[$b] = [];
$ref =& $ref[$b];
}
$ref = $lastValue;
return $out;
}
var_dump(nest($foo, $value));
解释时有点费解,但这是我的尝试:
$out
变量只是一个将在函数末尾返回的数组。
$ref
是对最近嵌套数组的引用。
在循环中,我们不断向引用添加数组,然后将引用设置为添加的数组。