实现方法:1、用“array_unique(数组)”分别给两个数组去除重复值;2、用“array_merge_recursive(去重数组1,去重数组2)”合并两个去重后的数组即可,若有键名相同的情况,则将该键名对应的键值合并为一个子数组。
php将两个数组去掉重复值后合并的方法
步骤1、使用array_unique()函数分别给两个数组去除重复值
array_unique() 函数移除数组中的重复的值,并返回结果数组。
当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
<?php$arr1=array("a"=>"red","b"=>"green","c"=>"red");
$arr2=array("1"=>"Cat","2"=>"Dog","3"=>"Cat","4"=>"rabbit");
$Narr1=array_unique($arr1);
$Narr2=array_unique($arr2);
var_dump(array_unique($Narr1));
var_dump(array_unique($Narr2));
?>
步骤2、使用array_merge_recursive()函数合并两个去重后的数组
array_merge_recursive() 函数用于把一个或多个数组合并为一个数组。
该函数与 array_merge() 函数之间的不同是在处理两个或更多个数组元素有相同的键名的情况。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
即合并数组时,遇到相同的键将该键中值合并为一个子数组
<?php$arr1=array("a"=>"red","b"=>"green","c"=>"red");
$arr2=array("1"=>"Cat","2"=>"Dog","3"=>"Cat","4"=>"rabbit");
$Narr1=array_unique($arr1);
$Narr2=array_unique($arr2);
var_dump(array_unique($Narr1));
var_dump(array_unique($Narr2));
var_dump(array_merge_recursive($Narr1,$Narr2));
?>