php array_intersect()函数
array_intersect()用于比较两个或多个数组,返回它们之间的交集(即,所有数组中共有的值)。它只比较值,不比较键。
语法
array_intersect(array $array, array ...$arrays): array
$array:要比较的主数组。
...$arrays:要与主数组进行比较的一个或多个数组。
返回值
返回一个数组,包含主数组中出现在所有其他数组中的值。保留主数组的键。
示例 1:基本用法
<?php
$array1 = ["a" => "red", "b" => "green", "c" => "blue"];
$array2 = ["red", "blue", "yellow"];
$result = array_intersect($array1, $array2);
print_r($result);
?>
输出:
Array
(
[a] => red
[c] => blue
)
说明:
$array1 和 $array2 共有的值是 red 和 blue。
返回结果保留了 $array1 的键名。
示例 2:多个数组比较
<?php
$array1 = ["red", "green", "blue", "yellow"];
$array2 = ["red", "blue", "yellow"];
$array3 = ["red", "yellow"];
$result = array_intersect($array1, $array2, $array3);
print_r($result);
?>
输出:
Array
(
[0] => red
[3] => yellow
)
说明:
red 和 yellow 是所有数组共有的值。
返回结果保留了 $array1 的键。
注意事项
键不参与比较
array_intersect() 只比较数组的值,不考虑键。
值类型敏感
它使用松散比较(==),即类型可以不同,但值相等。例如,"1" 和 1 会被认为相等。
保留主数组的键
结果中的键值来源于主数组,而不是其他数组。
示例 3:类型敏感比较
<?php
$array1 = ["1", 2, "3"];
$array2 = [1, "2", 3];
$result = array_intersect($array1, $array2);
print_r($result);
?>
输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
说明:
虽然 $array1 中的 "1" 和 $array2 中的 1 类型不同,但它们值相等,因此匹配。
示例 4:键值同时匹配(array_intersect_assoc())
如果需要同时比较键和值,使用 array_intersect_assoc():
<?php
$array1 = ["a" => "red", "b" => "green", "c" => "blue"];
$array2 = ["a" => "red", "c" => "yellow"];
$result = array_intersect_assoc($array1, $array2);
print_r($result);
?>
输出:
Array
(
[a] => red
)
说明:
只有键和值都匹配的元素会被返回。
这里仅 [a => red] 满足条件。
应用场景
获取数组的交集:筛选多个数组的共同值。
过滤重复数据:找出两个数据集合中共有的部分。
在多个数据源中查找匹配项。
array_intersect() 是一个高效的方法来处理数组间的交集操作,非常适合数据比对的场景。
编辑:
阅读量:9
url链接:https://www.qozr.com/cms_php-arrayintersect-han-shu.html
Tag标签: array_intersect , php
上一篇: php array_diff()函数
下一篇: 谷歌自动跳转防护机制
更多新闻
Copyright © 千欧中软 版权所有 https://www.qozr.com seo | 网站建设 [渝ICP备15005074号]
渝公网安备50011802011077