$arr = array('a','b','c','d');
转为
$brr = array(
'a'=>array(
'b'=>array(
'c'=>array(
'd'=>array()
)
)
)
);
PHP中文网2017-04-10 17:38:07
<?php
$arr = ['a', 'b', 'c', 'd'];
$child = array();
$res = [];
while($v = array_pop($arr)) {
$res = [$v => $child];
$child = $res;
}
print_r($res);
结果为
Array
(
[a] => Array
(
[b] => Array
(
[c] => Array
(
[d] => Array
(
)
)
)
)
)
黄舟2017-04-10 17:38:07
看到结构想到了递归,具体代码如下:
function toMany ($arr) {
$res = array();
burnArr($res, $arr);
return $res;
}
function burnArr (&$arr, $keys) {
if ( !empty($keys) ) {
$val = array_shift($keys);
$arr[$val] = array();
burnArr($arr[$val], $keys);
} else {
return ;
}
}