PHP常用数组操作函数详解:查找、增删、合并与排序

周末不加班
周末不加班
发布时间:2026-10-15| 5人浏览过
原创

在PHP开发中,高效处理数组是基础且关键的能力。本文通过具体代码实例,系统讲解如何对数组进行查找判断、长度统计、增加删除元素、多组合并以及顺序排列,帮助开发者掌握常用的数组内置函数。

数组查找与计数

当需要在一个大型数组中确定某个特定值是否存在时,可以使用in_array()函数。该函数返回布尔值,若找到匹配项则返回 true,否则返回 false。

例如,在一个名字列表中搜索 "Albert",由于该名字不存在,程序将输出提示信息:

<?php
$namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$lookingFor = "Albert";
if (in_array($lookingFor, $namesArray)) {
    echo "You've found it!";
} else {
    echo "Not found in this array!";
}
?>

如果将 $lookingFor 的值改为 "Mary",因为该值存在于数组中,代码将输出 “You've found it!”。

若要统计数组中的元素数量,可使用 count() 函数:

<?php
$namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$count = count($namesArray);
// $count 的值为 7
?>

数组元素的添加

向现有数组添加新元素主要有两种情况:添加到末尾或添加到开头。这分别对应 array_push() 和 array_unshift() 函数。

第1步:在数组末尾添加元素

使用 array_push() 将一个或多个元素追加到数组的结尾。原有序列保持不变,新元素获得递增的整数索引(从0开始或接续原有最大索引)。

<?php
/* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 加入到原始数组中 */
array_push($fruitArray, "grape", "pineapple", "tomato");

/* 遍历并列出每个元素及其键值 */
while (list($key,$value) = each($fruitArray)) {
    echo "$key : $value<br>";
}
?>

输出结果如下:

0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : grape
6 : pineapple
7 : tomato

第2步:在数组开头添加元素

使用 array_unshift() 将元素插入数组的最前端。这会导致原有所有元素的索引重新计算,即所有现有元素的索引减一,新插入的元素获得从0开始的连续索引。

<?php
/* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 加入到原始数组中 */
array_unshift($fruitArray, "grape", "pineapple", "tomato");

/* 遍历并列出每个元素及其键值 */
while (list($key,$value) = each($fruitArray)) {
    echo "$key : $value<br>";
}
?>

输出结果如下:

0 : grape
1 : pineapple
2 : tomato
3 : apple
4 : orange
5 : banana
6 : kiwi
7 : pear

数组合并操作

要将两个或更多数组的内容整合到一个新数组中,可以使用 array_merge() 函数。合并后的数组会按传入参数的顺序依次排列,并重新建立连续的整数索引。

<?php
/* 创建第一个数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 创建第二个数组 */
$vegArray = array("carrot", "green beans", "asparagus", "artichoke", "corn");
/* 合并为一个数组 */
$goodfoodArray = array_merge($fruitArray, $vegArray);

/* 遍历显示结果 */
while (list($key,$value) = each($goodfoodArray)) {
    echo "$key : $value<br>";
}
?>

合并后的输出展示了水果类紧随蔬菜类排列:

0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : carrot
6 : green beans
7 : asparagus
8 : artichoke
9 : corn

数组元素的删除与提取

删除数组元素的同时保留被删除的值,可以使用栈式操作(Stack)函数:array_pop() 和 array_shift()。

第3步:从末尾弹出元素

array_pop() 移除并返回数组的最后一个单元。此操作会改变数组的长度,且其余元素的索引不会重排。

<?php
/* 创建一数组*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 在末尾弹出某值 */
$popped = array_pop($fruitArray);

/* 列出新数组内容,以及弹出的值 */
while (list($key,$value) = each($fruitArray)) {
    echo "$key : $value<br>";
}
echo "<br>and finally, in $popped: $popped";
?>

输出结果为剩余的四个水果,以及弹出的最后一个元素:

0 : apple
1 : orange
2 : banana
3 : kiwi
and finally, in $popped: pear

第4步:从头部移出元素

array_shift() 移除并返回数组的第一个单元。不同于 pop,使用 shift 后,剩余的所有元素都会被重新分配索引,使最小的索引变成 0。

<?php
/* 创建一数组*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 从数组头部移出某值 */
$shifted = array_shift($fruitArray);

/* 列出新数组的内容以及移出的值 */
while (list($key,$value) = each($fruitArray)) {
    echo "$key : $value<br>";
}
echo "<br>and finally, in $shifted: $shifted";
?>

输出结果为首个元素被移除,后续元素索引自动前移:

0 : orange
1 : banana
2 : kiwi
3 : pear
and finally, in $shifted: apple

数组排序

对数组元素进行自然排序(升序)非常简单,使用 sort() 函数即可。需要注意的是,排序操作会破坏原有的字符串键名映射(如果是关联数组),并将所有键重新索引为从0开始的数字索引。

<?php
/* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 排序 */
sort($fruitArray);

/* 遍历显示排序后的结果 */
while (list($key,$value) = each($fruitArray)) {
    echo "$key : $value<br>";
}
?>

执行后,水果名称将按照字母表顺序排列:

0 : apple
1 : banana
2 : kiwi
3 : orange
4 : pear
以上就是关于PHP数组常见操作函数的详细内容,更多关于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 算法库。