php两个数组怎么去重
时间 : 2023-02-20 18:54:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

PHP中大多数数据类型都可以被视为数组,数组是一种类型可以用来储存多个值的容器。在PHP编程中,往往会遇到两个或更多的数组,要去重复。本文就让我们一起学习一下两个数组如何去除重复的值。

首先要明确的是,只有索引或关联数组才可以去掉重复的值,而不是数值数组。以下两个示例数组:

$array1= array("a" => "Cat", "b" => "Dog", "c" => "Cube");

$array2= array("a" => "Cube", "e" => "Cat", "f" => "Dog");

第一种方法是使用array_unique来对两个数组进行去重:

先将两个数组使用array_merge合并为一个数组,然后使用array_unique来去重复,这种方法不会更改原来数组中的键名:

$result = array_unique (array_merge($array1,$array2));

第二种方法是使用array_diff_key函数,这个函数只比较键名而不比较键值,它返回一个新的数组,包含被array_diff_key过滤后的结果:

$result = array_diff_key($array1, $array2);

第三种方法是使用PHP5自带的array_diff 递归数组函数(array_diff_assoc),因为这个函数不仅比较键名,也会比较键值:

$result = array_diff_assoc($array1, $array2);

上述示例中所有的方法都可以得到去重的结果。但是每个方法都有自己的特性,使用者应当根据实际情况,选择合适的方法。只要注意,在去重任何类型的数组时应当明确你要比较的是键名还是键值,以便选择合适的函数,去重数组得以实现。

PHP是目前最流行的编程语言。PHP 经常用于 Web 开发,但也可以用于命令行或桌面应用程序。有时我们需要对 PHP 中的两个数组进行去重处理,这一部分就会比较麻烦,但我们也可以实现。

第一种方法是使用PHP的内置函数array_unique(),它可以去除一个数组中重复的值,例如:

$arr = array("a"=>1, "b"=>2, "c"=>1, "d"=>2);

$arr = array_unique($arr);

使用array_unique()函数可以移除重复的值,最终结果为:

Array ( [a] => 1 [b] => 2 [d] => 2 )

第二种方法是利用两个for循环,先循环出一个数组中重复的值,然后用另外一个数组进行比较,将重复的值去除,例如:

$arr1 = array("a"=>1, "b"=>2, "c"=>1, "d"=>2);

$arr2 = array("a"=>1, "e"=>3, "f"=>2, "g"=>3);

$result = array();

foreach($arr1 as $key=>$value) {

if(!in_array($value, $arr2)) {

$result[$key] = $value;

}

}

foreach($arr2 as $key=>$value) {

if(!in_array($value, $arr1)) {

$result[$key] = $value;

}

}

用这种方法我们最终的结果为:

Array ( [a] => 1 [b] => 2 [e] => 3 [g] => 3 )

总结来说,使用PHP来去除两个数组中重复的值有两种常用的方法: utilising PHP在build-in函数array_unique()以及使用for循环处理两个数组,只要根据实际需要任意选择其一进行去重即可。