从键构建多维数组

我似乎无法弄清楚,我希望有人对此有一个神奇的递归解决方案。我有一个键列表,基本上我想将其转换为嵌套数组。

array('level1', 'level2', 'level3');

array(
    'level1' => array(
        'level2' => array(
             'level3' // last key in array should be just a value
        )
    )
)

非常感谢任何可以提供帮助的人!

弗拉德·普雷达(Vlad Preda)

像这样的事情应该做的工作:

function buildMultiDimensional(Array $arr)
{
    // the first value will become a new key
    $newKey = array_shift($arr);

    if (empty($arr)) {
        // this is where the recursion stops
        return $newKey;
    }

    // and the recursion !!!
    return array($newKey => buildMultiDimensional($arr));
}

$arr = array('level1', 'level2', 'level3', 'level4', 'level5');
var_dump(buildMultiDimensional($arr));

结果是预期的:

array(1) {
    ["level1"]=>
  array(1) {
        ["level2"]=>
    array(1) {
            ["level3"]=>
      array(1) {
                ["level4"]=>
        string(6) "level5"
      }
    }
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章