php数组从数组构建多维数组

php数组从数组构建多维数组,php,arrays,Php,Arrays,我有一个 array('frank','john','dan') 我需要从中建立一个 array('frank'=>array('john'=>array('dan'=>array()) 它必须是动态的,因为我并不总是知道初始数组中有多少个键 我试过一些东西,但不得不承认我被难倒了 问题似乎是,我无法为数组分配可变数量的维度,每当我为largearray变量分配数组键时,它都必须分配给变量的根 $keys = array('base','frank','john'); f

我有一个

 array('frank','john','dan')
我需要从中建立一个

array('frank'=>array('john'=>array('dan'=>array())
它必须是动态的,因为我并不总是知道初始数组中有多少个键

我试过一些东西,但不得不承认我被难倒了

问题似乎是,我无法为数组分配可变数量的维度,每当我为largearray变量分配数组键时,它都必须分配给变量的根

$keys = array('base','frank','john');
foreach ($keys as $k => $key) {
    if ($k>0) {
        $largearray[$keys[$k-1]] = array($key=>array());
    }elseif ($k>1) {
        $largearray = array_push($largearray[$keys[$k-2]], array($keys[$k-1]=>array($key=>array())));
    }
}

我希望这就是你想要的

    $arr = array('frank','john','dan');

    $finalArr = array();
    for ($x=count($arr) - 1; $x >= 0; $x--) {
        $arrElement = $arr[$x];
        $finalArr = array($arrElement => $finalArr);
    } 

    var_dump($finalArr);
这将导致

array (size=1)
  'frank' => 
    array (size=1)
      'john' => 
        array (size=1)
          'dan' => 
            array (size=0)
              ...