<?php
/**
* 对多个数组进行递归合并 返回新的数组
* 如果多个数组中有相同的键则会覆盖
* * @return type Array
*/
function multimerge()
{
$arrs = func_get_args();
$merged = array();
while ($arrs) {
$array = array_shift($arrs);
if (!$array) { continue; }
foreach ($array as $key => $value){
if (is_string($key)) {
if (is_array($value) && array_key_exists($key, $merged)
&& is_array($merged[$key])) {
$merged[$key] = call_user_func_array('multimerge',
array($merged[$key], $value));
} else {
$merged[$key] = $value;
}
} else {
$merged[] = $value;
}
}
}
return $merged;
}
$a = array('username'=>'zhangsan','age'=>200);
$b = array(5,8,9,array(1,2,3,array(7,10)));
$c = array('username'=>'lisi',100,'user'=>array('sex'=>1,'age'=>20));
$d = array('user' => array('sex'=>0));
$e = multimerge($a,$b,$c,$d);
var_dump($e);
以上代码输出如下
说明:
这是一个比较好用的PHP数组合并函数!可以对数组进行理想中的合并效果!任意维度
常用的使用场景,如配置文件合并!多个数据源转换为PHP数组后的合并处理等
更多用途!只有你自己发掘了!