欢迎访问宙启技术站
智能推送

如何使用php的array_intersect函数比较并返回两个数组的交集?

发布时间:2023-06-19 06:56:04

在PHP中,array_intersect () 函数用于比较两个或更多数组,并返回其中包含的公共元素。这个函数会返回一个新数组,其中包含了在这些数组中都存在的元素。

使用array_intersect()的语法如下:

$intersection_array = array_intersect($array1, $array2);

其中 $array1 和 $array2 是要比较的两个数组。$intersection_array 是返回的公共元素所组成的数组。

下面我们来看一个例子:

$array1 = array('apple', 'banana', 'orange', 'mango');
$array2 = array('banana', 'kiwi', 'orange', 'cherry');
$intersection_array = array_intersect($array1, $array2);
print_r($intersection_array); // Array ( [1] => banana [2] => orange )

我们将两个数组分别赋值给 $array1 和 $array2, 并使用 array_intersect() 函数比较它们,最后打印出 $intersection_array。结果为包含了 $array1 和 $array2 中共有的元素 "banana" 和 "orange"。

我们还可以比较多个数组:

$array1 = array('apple', 'banana', 'orange', 'mango');
$array2 = array('banana', 'kiwi', 'orange', 'cherry');
$array3 = array('orange', 'pear', 'grape');
$intersection_array = array_intersect($array1, $array2, $array3);
print_r($intersection_array); // Array ( [2] => orange )

在这个例子中,我们在比较 $array1 和 $array2 的同时加入了 $array3。我们可以看到结果中仅包含了所有数组中都有的元素 "orange"。

需要注意的是,array_intersect() 将会比较每一个数组中的值,这些值的类型也需要相同。因此,它也可以用于比较数组中的整型和字符串类型的键。

下面是一个使用 array_intersect() 比较关联数组的例子:

$array1 = array('a' => 'apple', 'b' => 'banana', 'c' => 'orange', 'd' => 'mango');
$array2 = array('a' => 'banana', 'b' => 'kiwi', 'c' => 'orange', 'd' => 'cherry');
$intersection_array = array_intersect($array1, $array2);
print_r($intersection_array); // Array ( [a] => apple [c] => orange )

结果是我们得到了一个新的数组,数组中包含了 $array1 和 $array2 中共有的键和值。在这个例子中,共有键为 "a" 和 "c",共有值为 "apple" 和 "orange"。

Tips:

如果比较的数组中有空值,将会忽略它们进行处理。

$array1 = array('apple', 'banana', 'orange', 'mango');
$array2 = array('banana', '', 'orange', 'cherry');
$intersection_array = array_intersect($array1, $array2);
print_r($intersection_array); // Array ( [1] => banana [2] => orange )

在这个例子中,我们将 $array2 数组中值为 "",即空值。虽然它们出现在 $array2 中,但在使用 array_intersect() 的时候将被忽略。

总结:array_intersect() 函数在 PHP 中用于比较两个或更多个数组,并返回其中共有的元素。它比较从两个或多个数组中提取的值或键,必须为完全相同的类型。使用 array_intersect() 函数比较数组时,可以在函数中比较任意数量的数组。输出结果并在返回数组中包含公共元素的新数组中呈现。