php

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

同类新闻

更多新闻

Copyright © 千欧中软 版权所有 https://www.qozr.com seo | 网站建设 [渝ICP备15005074号] 渝公网安备50011802011077