PHP多个数组合并(递归的进行)

来源:互联网 发布:销售软件手机版 编辑:程序博客网 时间:2024/06/03 19:44
<?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数组后的合并处理等

更多用途!只有你自己发掘了!


0 0