PHP 中有哪些常用的数组函数?

PHP中提供了丰富的数组函数,覆盖了数组的创建、遍历、排序、合并、过滤等核心操作。以下根据官方文档推荐和开发者社区高频使用情况,分类整理常用函数及其功能说明:

一、数组创建与检测

  1. array()
    用于创建数组,支持索引数组、关联数组和多维数组的初始化。例如 $arr = array('a' => 1, 2, 3); 。

  2. range()
    生成包含指定范围元素的数组,如 range(1,5) 生成 [1,2,3,4,5],支持步长设置 range(0,10,2) 。

  3. compact()
    将变量名和值转换为关联数组,例如 compact('var1', 'var2') 。

  4. is_array()
    检测变量是否为数组,返回布尔值。例如 is_array($arr) 。

二、数组遍历与元素处理

  1. foreach()
    原生循环结构,高效遍历数组键值对。例如 foreach($arr as $key => $value) 。

  2. array_map()
    对数组每个元素应用回调函数,返回新数组。例如 array_map('strtoupper', $arr) 。

  3. array_walk()
    自定义函数处理数组元素(可修改原数组),例如 array_walk($arr, function(&$v) { $v *= 2; }) 。

  4. array_reduce()
    通过回调函数迭代将数组减少为单一值,如求和 array_reduce($arr, fn($carry, $v) => $carry + $v) 。

三、数组查找与过滤

  1. in_array()
    判断值是否存在于数组中,返回布尔值。例如 in_array('apple', $fruits) (中小型项目使用频率30~50次)。

  2. array_search()
    查找值并返回对应键名,如 array_search('apple', $fruits) 。

  3. array_filter()
    使用回调函数过滤数组元素。例如 array_filter($arr, fn($v) => $v > 10) 。

  4. array_unique()
    删除数组中的重复值,保留首次出现的键值对。例如 array_unique([1,2,2,3]) 。

四、数组排序

  1. sort() / rsort()
    对索引数组升序/降序排序(重置键名)。例如 sort($arr) 。

  2. asort() / arsort()
    对关联数组按值排序并保持键关联。例如 asort($ages) 。

  3. ksort() / krsort()
    按键名对关联数组排序。例如 ksort($userData) 。

  4. array_multisort()
    对多个数组或多维数组进行排序,如按年龄排序对象数组 。

五、数组合并与分割

  1. array_merge()
    合并多个数组(覆盖重复键),例如 array_merge($arr1, $arr2) (使用频率3~10次)。

  2. array_slice()
    提取数组的子集。例如 array_slice($arr, 2, 4) 提取从索引2开始的4个元素 。

  3. explode() / implode()
    字符串与数组互相转换。例如 implode(',', $arr) 将数组转为逗号分隔字符串 。

  4. array_chunk()
    将数组分割为多个子数组。例如 array_chunk($arr, 3) 每3个元素一组 。

六、栈与队列操作

  1. array_push() / array_pop()
    在数组末尾推入/弹出元素,模拟栈结构。例如 array_push($stack, 'item') (使用频率3~10次)。

  2. array_unshift() / array_shift()
    在数组开头添加/移除元素,模拟队列操作。例如 array_shift($queue) 。

七、数组转换与统计

  1. array_values() / array_keys()
    分别返回数组的值数组和键数组。例如 array_keys($user) 获取所有键名 。

  2. count() / sizeof()
    统计数组元素数量。count($arr) 是首选,sizeof() 为其别名 (高频使用50次以上)。

  3. array_sum() / array_product()
    计算数组元素的和或乘积。例如 array_sum([1,2,3]) 返回6 。

  4. array_flip()
    交换键值对,适用于快速查找键是否存在。例如 array_flip(['a'=>1, 'b'=>2]) 。

八、高级与性能优化函数

  1. array_column()
    从多维数组中提取指定列,如 array_column($users, 'name') 。

  2. array_diff() / array_intersect()
    计算数组差集或交集。例如 array_diff($arr1, $arr2) (使用频率1~5次)。

  3. array_rand()
    随机返回一个或多个键名。例如 array_rand($arr, 2) 。

总结

PHP数组函数的设计兼顾灵活性与性能,例如:

  • 排序优化asort()在处理大数组时性能优于usort(),因其采用哈希表算法 。
  • 减少遍历:优先使用array_column()替代循环提取列数据,提升效率 。
  • 动态处理:利用array_walk()array_map()实现自定义逻辑,避免冗余代码 。

开发者应根据具体场景选择函数,例如高频操作推荐in_array()count(),复杂数据处理可结合array_multisort()array_reduce()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破碎的天堂鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值