从值数目未知的数组创建PHP嵌套数组

从值数目未知的数组创建PHP嵌套数组,php,multidimensional-array,nested,Php,Multidimensional Array,Nested,假设我有一个PHP数组 $my = array('Google','Api','Key'); 我怎样才能创建一个嵌套数组,使它最终变成这样 $new = array('Google'=>array('Api'=>array('key'=>'Some Value'); 它需要是动态的,因为我不知道我持有多少元素 我已经花了8个小时尝试,但失败了。如有任何帮助,将不胜感激 我编辑了这个,因为我需要$my数组中的最后一个元素设置一个值。我该怎么做呢 谢谢函数构建递归数组($arr

假设我有一个PHP数组

$my = array('Google','Api','Key');
我怎样才能创建一个嵌套数组,使它最终变成这样

$new = array('Google'=>array('Api'=>array('key'=>'Some Value');
它需要是动态的,因为我不知道我持有多少元素

我已经花了8个小时尝试,但失败了。如有任何帮助,将不胜感激

我编辑了这个,因为我需要$my数组中的最后一个元素设置一个值。我该怎么做呢

谢谢

函数构建递归数组($array)
function build_recursive_array($array)
{
    if(sizeof($array) < 1) return array();

    $key = array_shift($array);
    return array($key => build_recursive_array($array));
}
print_r(build_recursive_array(array('Google','Api','Key')));
{ if(sizeof($array)<1)返回数组(); $key=array\u shift($array); 返回数组($key=>build_recursive_数组($array)); } 打印(构建递归数组(数组('Google','Api','Key'));
函数构建递归数组($array)
{
if(sizeof($array)<1)返回数组();
$key=array\u shift($array);
返回数组($key=>build_recursive_数组($array));
}
打印(构建递归数组(数组('Google','Api','Key'));

老实说,马特,我尝试了太多东西,都弄糊涂了。我的头脑告诉我需要使用递归。我遇到的麻烦是获取以前添加的阵列。我似乎总是以一维阵列结束。老实说,马特,我尝试了太多东西,都弄糊涂了。我的头脑告诉我需要使用递归。我遇到的麻烦是获取以前添加的阵列。我似乎总是得到一个一维数组+1 |做得好,在我面前;P我使用了
empty()
而不是
sizeof()
。Alex,我如何向$my数组中的最后一个元素添加值。Thanks@Chris表示
返回数组()
的行是
键的值。你可以改变它。@Kristian Antonsen,但是我怎么知道它是数组中的最后一个元素呢?我会继续计算$my的计数并使用if语句,这样当它位于最后一个元素上时,就不会构建递归数组($array),而是$key=>“Some Value”@Chris,该行仅在它是最后一个元素时返回。如果(sizeof($array)<1)返回'Some Value',只需将其更改为
你会很好的。+1 |干得好,在我面前;P我使用了
empty()
而不是
sizeof()
。Alex,我如何向$my数组中的最后一个元素添加值。Thanks@Chris表示
返回数组()
的行是
键的值。你可以改变它。@Kristian Antonsen,但是我怎么知道它是数组中的最后一个元素呢?我会继续计算$my的计数并使用if语句,这样当它位于最后一个元素上时,就不会构建递归数组($array),而是$key=>“Some Value”@Chris,该行仅在它是最后一个元素时返回。如果(sizeof($array)<1)返回'Some Value',只需将其更改为
你会很好的。