$arr = array('a','b','c','d');
转为
$brr = array(
'a'=>array( 'b'=>array( 'c'=>array( 'd'=>array() ) ) )
);
闭关修行中......
<?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 ( ) ) ) ) )
看到结构想到了递归,具体代码如下:
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 ; } }
结果为
看到结构想到了递归,具体代码如下: