array_intersect() 是 PHP 的一个内置函数,用于 返回两个或多个数组的交集,即返回那些在所有数组中都存在的值。
语法
array_intersect(array $array1, array $array2, array …$arrays): array
参数
- array1 是主数组;
- 后面的数组是用来和它比较的;
返回值
一个新的数组,包含所有在 array1 中也存在于其它数组中的值(保持 array1 的键不变)。
示例
$a = [1, 2, 3, 4];
$b = [3, 4, 5, 6];
$result = array_intersect($a, $b);
print_r($result);
Array
(
[2] => 3
[3] => 4
)
说明:值 3
和 4
同时存在于 $a
和 $b
,并保留了在 $a
中的原始键。
注意事项
-
只比较值,不比较键。
-
比较是 非严格类型(即
3 == '3'
是成立的)。 -
如果要严格比较类型(
===
),可以使用:
👉array_intersect_assoc()
(同时比较键和值)
👉array_uintersect()
(支持自定义比较函数)
实际用途示例
判断两个数组是否有重复元素:
if (!empty(array_intersect($arr1, $arr2))) {
echo “有重复元素”;
} else {
echo “无重复元素”;
}