php 递归合并类 call,PHP多个数组合并(递归的进行)
/**
* 對(duì)多個(gè)數(shù)組進(jìn)行遞歸合并 返回新的數(shù)組
* 如果多個(gè)數(shù)組中有相同的鍵則會(huì)覆蓋
* * @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);
以上代碼輸出如下
說(shuō)明:
這是一個(gè)比較好用的PHP數(shù)組合并函數(shù)!可以對(duì)數(shù)組進(jìn)行理想中的合并效果!任意維度
常用的使用場(chǎng)景,如配置文件合并!多個(gè)數(shù)據(jù)源轉(zhuǎn)換為PHP數(shù)組后的合并處理等
更多用途!只有你自己發(fā)掘了!
總結(jié)
以上是生活随笔為你收集整理的php 递归合并类 call,PHP多个数组合并(递归的进行)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php+mkdate,PHP时间工具种
- 下一篇: php正则相对地址,php – 正则表