实现以下目标的最佳方法是什么?即动态地从另一个数组构建数组键?
$array = (
'key1',
'key2',
'key3'
);
Resulting in:: $arr['key1']['key2']['key3'] = array()/value;
换句话说,你添加到$ array(或更少)的值越多,那么就建立了相应的多维数组。
由于
答案 0 :(得分:0)
您可以轻松构建递归函数,或者使用引用:
$array = array('key1', 'key2', 'key3');
$result = array();
$temp = &$result;
foreach($array as $key) {
$temp =& $temp[$key];
}
$temp = 'value'; //or whatever
var_dump($result);
答案 1 :(得分:0)
我已经开始了,所以即使已经接受了答案,我也会发布我的答案:
$input = array('key1', 'key2', 'key3');
$result = array();
buildArray($input, $result);
print_r($result);
function buildArray($input, &$result){
if(0 == count($input))
return $result;
$next = array_shift($input);
$result[$next] = array();
buildArray($input, $result[$next]);
}
有效,虽然我认为@AbraCadaver发布的答案更优雅。