作者MacMini (被遗忘的)
看板PHP
标题[请益] 阵列合并的问题
时间Tue Aug 16 16:04:43 2011
我有以下两个阵列
$array1 = array('a'=>'a','b'=>'b','c'=>'c',
'd'=>array('d1'=>'d1', 'd2'=>'d2')
);
$array2 = array('a'=>'a1','b'=>'b1'
'd'=>array('d1'=>'d1-1', 'd3'=>'d3')
)
我希望让它变成
array('a'=>'a1','b'=>'b1','c'=>'c'
'd'=>array('d1'=>'d1-1','d2'=>'d2','d3'=>'d3')
);
也就是说 我需要array1 与 array2 合并
array2是array1的更新版 但是array2里面不一定会有array1的key
我要怎麽做才会保有array1的内容且让array2更新呢?
我试过
array_merge
但是他会将array1第二层的阵列内容完全取代
不会保有array1第二层的原始阵列内容
array_merge_recursive
这个会将旧有的值放在第一个将新资料放在後面 并不是取代
(应该是这样吧?)
自问自答 (不知道这样写法正不正确)
function MY_array_merge($array1,$array2){
foreach($array2 as $key => $data){
if(is_array($data) && isset($array1[$key])){
$array1[$key] = MY_array_merge($array1[$key],$data);
}else{
$array1[$key] = $data;
}
}
return $array1;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.228.158
※ 编辑: MacMini 来自: 114.32.228.158 (08/16 16:34)
1F:推 liaosankai:补充:如果两个变数都是阵列,可以直接$arr1 += arr2 08/17 09:02
2F:→ liaosankai:效果等同array_merge 08/17 09:03