从另一个数组动态构建数组键

时间:2014-11-12 20:24:00

标签: php arrays

实现以下目标的最佳方法是什么?即动态地从另一个数组构建数组键?

$array = (
    'key1',
    'key2',
    'key3'
);

Resulting in:: $arr['key1']['key2']['key3'] = array()/value;

换句话说,你添加到$ array(或更少)的值越多,那么就建立了相应的多维数组。

由于

2 个答案:

答案 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发布的答案更优雅。