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);
以上代碼輸出如下
說明:
這是一個比較好用的PHP數組合并函數!可以對數組進行理想中的合并效果!任意維度
常用的使用場景,如配置文件合并!多個數據源轉換為PHP數組后的合并處理等
更多用途!只有你自己發掘了!
總結
以上是生活随笔為你收集整理的php 递归合并类 call,PHP多个数组合并(递归的进行)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php+mkdate,PHP时间工具种
- 下一篇: php正则相对地址,php – 正则表