PHP:如何根据获得的某些值动态创建多维数组?

PHP:如何根据获得的某些值动态创建多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,以该阵列为例: $array = array( 'key1' , 'key2' ); 如何使用上面的数组创建类似以下内容: $multiarray['key1']['key2'] = 'test'; 无论阵列计数是多少,这都应该有效: $array = array( 'key1' , 'key2' , 'key3' , 'key4' ); $multiarray['key1']['key2']['key3']['key4'] = 'test'; 有点超出范围,但值得一提的是我

以该阵列为例:

$array = array( 'key1' , 'key2'   );
如何使用上面的数组创建类似以下内容:

$multiarray['key1']['key2'] = 'test'; 
无论阵列计数是多少,这都应该有效:

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

$multiarray['key1']['key2']['key3']['key4'] = 'test'; 

有点超出范围,但值得一提的是我相信:)

输出:

stdClass Object
(
    [foo] => stdClass Object
        (
            [bar] => stdClass Object
                (
                    [baz] => stdClass Object
                        (
                            [qux] => ¯\_(ツ)_/¯
                        )

                )

        )

)
那么:

<?php
$ks = [3,2,4,1,4,5,5521,231,3];

var_dump(array_reduce( array_reverse($ks)
                      ,function($carry,$item){ return [$item => $carry];}
                      ,"test"));

/* array(1) {
  [3]=>
  array(1) {
    [2]=>
    array(1) {
      [4]=>
      array(1) {
        [1]=>
        array(1) {
          [4]=>
          array(1) {
            [5]=>
            array(1) {
              [5521]=>
              array(1) {
                [231]=>
                array(1) {
                  [3]=>
                  string(4) "test"
                }
              }
            }
          }
        }
      }
    }
  }
} */
?>

另一个例子,使用海绵宝宝作为函数名:

$inp = ['keyX', 'koyX', 'drip', 'drop'];
$result = spongeBob($inp);

echo "<pre>";
print_r($result);
echo "</pre>"; 

function spongeBob($arr){
    $rev = array_reverse($arr);
    $result = 'test';
    foreach ($rev as $oneKey){
        $result = array($oneKey => $result);
    }   
    return $result;
}
$inp=['keyX','koyX','drip','drop'];
$result=海绵宝宝($inp);
回声“;
打印(结果);
回声“;
功能海绵宝宝($arr){
$rev=阵列_反向($arr);
$result='test';
foreach($oneKey修订版){
$result=数组($oneKey=>$result);
}   
返回$result;
}
这个怎么样-

Array
(
    [key1] => Array
        (
            [key2] => Array
                (
                    [key3] => Array
                        (
                            [key4] => text
                        )

                )

        )

)

我们能知道为什么吗??所以这不是一个问答游戏平台。包括你的尝试。你尝试了什么!!看看@RohitKumar我来这里只是为了解决一个偶然的难题。:-)我喜欢这个。你能在生产代码中保留函数名吗?;-)我非常怀疑,我的实习雇主不会喜欢的,哈哈。
<?php
$array = array( 'key1' , 'key2' , 'key3' , 'key4'   );
$result=magic();
function magic()
{
global $array;
$key=current($array);
return next($array)?array($key=>magic()):array($key=>'text');

}
echo "<pre>";
print_r($result);
echo "<pre>";

?>
Array
(
    [key1] => Array
        (
            [key2] => Array
                (
                    [key3] => Array
                        (
                            [key4] => text
                        )

                )

        )

)