我正在尝试将元素添加到子数组的子数组中,并在上一次迭代中添加它们,即转换它:
$a = array('a', 'b', 'c');
进入这个:
$new_array = array(
'a' => array(
'b' => array(
'c' => array()
)
)
);
答案 0 :(得分:3)
$a = array('a', 'b', 'c');
$tmp = array_reverse($a);
$new_array = array();
foreach ($tmp as $item) { $new_array = array($item => $new_array); }
答案 1 :(得分:1)
function makeArrayChain($chain)
{
$key = array_shift($chain);
if ($key === NULL) {
return array();
} else {
return array($key => makeArrayChain($chain));
}
}
var_dump(makeArrayChain(array('a', 'b', 'c'));
array(1) {
["a"]=>
array(1) {
["b"]=>
array(1) {
["c"]=>
array(0) {
}
}
}
}
答案 2 :(得分:1)
与@aibs解决方案类似。
<?php
function splitIntoSubArray($array) {
return $array ? array(array_shift($array) => splitIntoSubArray($array)) : array();
}
$a = array('a', 'b', 'c');
print_r(splitIntoSubArray($a));
<强>输出:强>
Array
(
[a] => Array
(
[b] => Array
(
[c] => Array
(
)
)
)
)