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
)
)
)
)