上一节我们学习了PHP的多维数组,本节我们将总结PHP数组的常用函数,方便读者对数组进行增删改查和特殊的自定义操作。
下面我们通过一张表格来总览一下PHP数组的常用函数(涵盖了数组的创建、操作、搜索、排序、遍历等各个方面):
| 函数 | 功能 |
|---|---|
| count() | 返回数组中元素的个数 |
| array_push() | 向数组末尾添加一个或多个元素 |
| array_pop() | 删除并返回数组的最后一个元素 |
| array_shift() | 删除并返回数组的第一个元素 |
| array_unshift() | 向数组开头添加一个或多个元素 |
| array_merge() | 合并一个或多个数组 |
| array_slice() | 从数组中取出一段元素 |
| array_splice() | 删除并替换数组中的元素 |
| in_array() | 检查数组中是否存在某个值 |
| array_search() | 在数组中搜索给定的值,返回对应的键 |
| array_key_exists() | 检查给定的键名或索引是否存在于数组中 |
| array_keys() | 返回数组中所有的键名 |
| array_values() | 返回数组中所有的值 |
| sort() | 对数组进行升序排序 |
| rsort() | 对数组进行降序排序 |
| asort() | 对数组进行升序排序并保持索引关系 |
| arsort() | 对数组进行降序排序并保持索引关系 |
| ksort() | 按照键名对数组进行升序排序 |
| krsort() | 按照键名对数组进行降序排序 |
| array_reverse() | 返回单元顺序相反的数组 |
| array_unique() | 移除数组中重复的值 |
| array_filter() | 用回调函数过滤数组中的元素 |
| array_map() | 将回调函数作用到给定数组的元素上 |
| array_reduce() | 用回调函数迭代地将数组简化为单一的值 |
| implode() | 将数组元素连接成字符串 |
| explode() | 将字符串分割成数组 |
| array_rand() | 从数组中随机取出一个或多个键 |
| shuffle() | 打乱数组中元素的顺序 |
| array_sum() | 计算数组中所有值的和 |
| array_product() | 计算数组中所有值的乘积 |
| array_column() | 返回数组中指定的一列 |
| array_chunk() | 将一个数组分割成多个 |
| array_fill() | 用给定的值填充数组 |
| range() | 建立一个包含指定范围单元的数组 |
下面,我们使用数组的常用函数对数组arr=[1,2,3]进行简单的增删查改和个性化操作:
<?php
$arr = [1, 2, 3];
// 1. 增加元素 - array_push
array_push($arr, 4); // [1, 2, 3, 4]
// 2. 删除元素 - array_pop
array_pop($arr); // [1, 2, 3]
// 3. 查找元素 - in_array
$exists = in_array(2, $arr); // true
// 4. 修改元素 - 直接赋值
$arr[1] = 20; // [1, 20, 3]
// 5. 排序 - sort
sort($arr); // [1, 3, 20]
// 6. 数组合并 - array_merge
$new_arr = array_merge($arr, [5, 6]); // [1, 3, 20, 5, 6]
// 7. 数组反转 - array_reverse
$reversed = array_reverse($arr); // [20, 3, 1]
// 8. 数组切片 - array_slice
$sliced = array_slice($arr, 0, 2); // [1, 3]
// 9. 数组转字符串 - implode
$str = implode(', ', $arr); // "1, 3, 20"
// 10. 数组求和 - array_sum
$sum = array_sum($arr); // 24
// 11. 过滤数组 - array_filter
$filtered = array_filter($arr, function($val) {
return $val > 1; // [3, 20]
});
// 12. 映射修改 - array_map
$mapped = array_map(function($val) {
return $val * 10; // [10, 30, 200]
}, $arr);
// 13. 获取数组长度 - count
$length = count($arr); // 3
// 14. 检查键是否存在 - array_key_exists
$has_key = array_key_exists(1, $arr); // true
// 15. 获取所有键名 - array_keys
$keys = array_keys($arr); // [0, 1, 2]
// 16. 随机获取元素 - array_rand
$random_key = array_rand($arr); // 随机返回 0, 1 或 2
// 17. 去重 - array_unique
$unique = array_unique([1, 2, 2, 3]); // [1, 2, 3]
// 18. 替换元素 - array_replace
$replaced = array_replace($arr, [1 => 100]); // [1, 100, 20]
// 19. 填充数组 - array_fill
$filled = array_fill(0, 3, 'hello'); // ['hello', 'hello', 'hello']
// 20. 搜索值返回键 - array_search
$key = array_search(3, $arr); // 1
?>总结:熟练运用这些数组的相关函数能够让我们灵活地处理数据,提高开发效能。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程