李涛自留地
回到顶部
首页 > php学习

PHP array_multisort() 函数详解:多维数组排序的 N 种姿势

PHP 开发中经常遇到多维数组排序的需求,比如按用户注册时间排序、按商品价格排序等。array_multisort() 是 PHP 内置的多维数组排序函数,可以同时对多个数组进行排序,也可以对多维数组的多个字段进行排序。array_multisort() 基本语法array_multisort(ar…

PHP 数组查找函数 in_array()、array_search()、array_keys() 实战对比

最近写权限验证的时候,纠结用 in_array 还是 array_key_exists,查了半天文档才发现这俩根本不是一个东西。今天把这几个数组查找函数捋清楚。 in_array() 判断值是否存在 in_array 最常用的,判断一个值在不在数组里。 $users = ['admin&#…

PHP array_merge_recursive() 和 array_replace() 详解:数组合并与替换

前言 合并数组时 array_merge() 是首选,但遇到关联数组时会有覆盖行为,多维数组时又会有键名重复问题。array_merge_recursive() 和 array_replace() 提供了不同的合并策略。 array_merge_recursive() 递归合并 array_merg…

PHP array_key_first() 和 array_key_last():获取数组首尾键名

以前获取数组的第一个键名需要 current() 配合 key(),或者用 reset()。PHP 7.3 引入了 array_key_first() 和 array_key_last(),语义更清晰,使用更简洁。 ## 基本用法 array_key_first(array) - 获取数组的第一个键…

PHP array_diff() 和 array_intersect() 详解:数组集合运算

前言 做数据对比时经常需要找出两个数组的差集和交集。array_diff() 和 array_intersect() 就是干这个的。这篇文章把它们和 array_merge() 的区别理清楚。 array_diff() 差集 array_diff(array1, array2, ...) - 返回在…

PHP array_reverse() 函数详解:数组反转的 N 种方式

前言 最近处理日志数据,发现数据是按时间正序存储的,但前端需要倒序展示。本来想写个循环倒排,后来发现 array_reverse() 一行搞定。 基本用法 array_reverse(array, preserve_keys) - 反转数组元素顺序。第二个参数默认 false(重置键名),设为 tr…

PHP array_rand()、array_sum()、array_product() 常用聚合函数

抽奖、随机推荐、统计求和——这些需求太常见了,PHP 的数组聚合函数刚好派上用场。这篇文章整理几个最实用的聚合函数。 ## array_rand() 随机选取 array_rand(array, n) - 从数组中随机选出 n 个键名。注意:返回的是键名,不是值。 ` ` ### 多个随机键名 ``…

PHP array_flip() 和 array_key_exists() 详解:反转键值与键名判断

最近写权限检查函数时,需要频繁判断一个 ID 是否在允许列表中。用 in_array($id, $arr) 查了老半天,后来发现把数组反转后,array_key_exists() 的性能高出几个数量级。 这篇文章聊聊array_flip()和 array_key_exists() 的配合使用,以及常…

PHP array_slice() 和 array_splice() 详解:数组切片与截取

分页功能中需要从数组中截取一页的数据。array_slice()和 array_splice() 都能做到,但一个返回新数组,一个修改原数组。这篇文章把这两个函数的区别和使用场景理清楚。 array_slice()基本用法 array_slice(array, offset, length) - 从…

PHP array_combine() 函数详解:用两个数组构造键值对

昨天处理数据库查询结果时,需要从字段名和字段值两个数组构造关联数组。本来用 foreach 循环拼,后来发现 array_combine() 一行就能搞定,而且代码可读性更好。 基本用法 array_combine(array_keys, array_values) - 用一个数组的值作为键名,另一…