php 递归合并类 call,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);

以上代码输出如下

0818b9ca8b590ca3270a3433284dd417.png

说明:

这是一个比较好用的PHP数组合并函数!可以对数组进行理想中的合并效果!任意维度

常用的使用场景,如配置文件合并!多个数据源转换为PHP数组后的合并处理等

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值