假设我有以下数组:
$value = 'x';
$foo = Array(
0 => 'arraydepth1',
1 => 'arraydepth2',
2 => 'arraydepth3',
3 => 'arraydepth4'
)
我需要这些值作为以下数组的键,按顺序/深度排列:
$bar['arraydepth1']['arraydepth2']['arraydepth3']['arraydepth4'] = 'x';
让您了解以下内容:
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
是对最近嵌套的数组的引用。在循环中,我们不断向引用添加一个数组,然后将引用设置为添加的数组。