PHP实现 一位数组转化为多维数组:
<?php
$arr = [
['a', 'b', 'c', 'd', 'e',],
['a', 'b', 'b', 'd', 'e',],
['c', 't', 'v', 'd', 'e',],
];
function treeMap($arr){
$dtree = [];
foreach ($arr as $md5 => $item) {
$dtree = array_merge_recursive($dtree, tree($item, 1));
}
return $dtree;
}
function tree($arr, $num) {
$tree = [];
$tmp = &$tree;
foreach ($arr as $key) {
$tmp[$key] = [];
$tmp = &$tmp[$key];
}
$tmp = $num;
return $tree;
}
print_r(treeMap($arr));
PHP实现 array_merge_recursive 函数:
<?php
$a1 = [
'a' => [
'b' => [
'c' => [
'd' => [
],
],
],
],
];
$a2 = [
'a' => [
'b' => [
'c' => [
'e' => [
'f' => 1,
],
],
],
],
];
$a3 = [];
function merge($a1, $a2) {
if ( !is_array($a1) && !is_array($a2) ) {
return false;
}
$v1 = key($a1); $v2 = key($a2);
if ( $v1 != $v2 ) {
$tmpArr[$v1] = $a1[$v1];
$tmpArr[$v2] = $a2[$v2];
return $tmpArr;
} else {
$tmpArr[$v1] = merge($a1[$v1], $a2[$v1]);
}
return $tmpArr;
}
$newArr = merge($a1, $a2);
print_r($newArr);