PHP数组函数 array_intersect() 用法详解与示例

花开有时
花开有时
发布时间:2026-10-15| 4人浏览过
原创

本文介绍 PHP 中 array_intersect() 函数的使用方法,该函数用于计算多个数组的交集,即找出所有数组中都存在的值并返回对应的键名。

核心功能与结果

array_intersect() 是 PHP 中的一个内置数组函数,其主要作用是接收两个或多个数组作为输入,对比这些数组中包含的值。最终返回的结果是一个新的数组,其中只包含那些在所有输入数组中都出现的元素。与许多其他语言或库的操作不同,array_intersect() 会严格保留原数组中的数值索引(键名),这在进行数据关联对照时非常有用。需要注意的是,比较过程仅基于元素的“值”,忽略类型差异以外的匹配逻辑(如字符串 "1" 和整数 1 在该函数中被视为相等)。

准备条件

  • 一个标准的 PHP 运行环境(支持 PHP 4.0.1 及以上版本)。
  • 至少需要两个待比较的数组变量(array1 和 array2),也可根据需要传入更多数组。

语法结构与参数入口

在使用该函数前,了解其标准签名至关重要:

array_intersect(array $array1, array $array2, ?array ...$arrays): array

具体参数要求如下:

  • array1 (必需):第一个待比较的基础数组。后续数组将与它进行比对。
  • array2 (必需):第二个待比较数组。它的元素将被检查是否存在于 array1 中。
  • arrays (...optional):可选参数,允许传入任意数量的额外数组参与比较。如果只传了两个数组,则只计算这两个数组的交集。

真实操作顺序与示例

第1步:定义待比较的源数组

在脚本中创建包含测试数据的数组。为了演示效果,通常构建两个具有部分重叠值的数组。

<?php
// 定义第一个数组,包含一些动物名称及其对应的索引
$a1 = array(0 => "Cat", 1 => "Dog", 2 => "Horse");

// 定义第二个数组,包含不同的索引但有一些相同的值
$a2 = array(3 => "Horse", 4 => "Dog", 5 => "Fish");
?>

第2步:调用 array_intersect() 执行比较

将定义好的数组直接作为参数传递给 array_intersect() 函数,并将返回的新结果赋值给一个变量或直接输出。

<?php
// 计算 a1 和 a2 的交集
$result = array_intersect($a1, $a2);

// 格式化输出查看结果
print_r($result);
?>

第3步:观察完成状态(返回值分析)

执行上述代码后,系统会遍历 $a1 中的每一个值,判断它是否存在于 $a2 中。因为 Dog 和 Horse 同时存在于两个数组中,所以它们会被保留。由于保留了键名,Dog 原来的索引是 1,Horse 原来的索引是 2。

预期的标准输出结果为:

Array
(
    [1] => Dog
    [2] => Horse
)

这意味着返回的数组中,键名 [1] 对应值为 Dog,键名 [2] 对应值为 Horse。

注意事项

虽然该函数主要用于处理简单数组,但在涉及对象或复杂数据结构时需格外小心,因为它默认使用 == 操作符进行等值比较。此外,若需要区分大小写,建议先将数组统一转换为小写;反之如需保留原始大小写敏感性,则直接使用即可。

简要总结

array_intersect() 是提取多个数组共同元素的高效工具。它通过值对比筛选数据,并完美保持原始索引不变,适合用于数据去重、集合运算及日志过滤场景。以上就是 PHP 数组函数 array_intersect() 返回两个或多个数组的交集数组的详细内容,更多关于 PHP 数组处理技巧的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。