PHP多维数组按指定字段排序usort自定义排序方法(或使用太空船操作符 <=> 进行比较,默认按升序排序)

有个需求,一个多维数组 list,要求按'sort'字段进行排序, list数组数据格式如下:

array(12) {

0\]=\> array(10) { \["id"\]=\> "21005421" \["cnt"\]=\> "2" \["pv"\]=\> "651" \["uv"\]=\> "606" \["g_name"\]=\> string(51) "话费红包 10 元(支付宝话费立减金)ZM" \["order_rate"\]=\> "14.52%" \["sort"\]=\> "4" } \[1\]=\> array(10) { \["id"\]=\> "21005422" \["cnt"\]=\> "3" \["pv"\]=\> "651" \["uv"\]=\> "606" \["g_name"\]=\> string(51) "话费红包 10 元(支付宝话费立减金)ZM" \["order_rate"\]=\> "4.12%" \["sort"\]=\> "2" } \[2\]=\> array(10) { \["id"\]=\> "21005425" \["cnt"\]=\> "2" \["pv"\]=\> "651" \["uv"\]=\> "606" \["g_name"\]=\> string(51) "话费红包 10 元(支付宝话费立减金)ZM" \["order_rate"\]=\> "11.02%" \["sort"\]=\> "3" } } 可以用usort函数实现快速排序: > ``` > //按数组值大小升序排序 > usort($list,function($a, $b) { > return $a['sort'] - $b['sort']; // 升序排序 > }); > ``` > > // 或使用太空船操作符 \<=\> 进行比较,默认按升序排序 > > usort($data, function($a, $b) { > > return $a\['sort'\] \<=\> $b\['sort'\]; > > }); > > ``` > > ``` 执行后var_dump($list) 返回了预期的升序排序如下: array(12) { \[0\]=\> array(10) { \["id"\]=\> "21005422" \["cnt"\]=\> "3" \["pv"\]=\> "651" \["uv"\]=\> "606" \["g_name"\]=\> string(51) "话费红包 10 元(支付宝话费立减金)ZM" \["order_rate"\]=\> "4.12%" \["sort"\]=\> "2" } \[1\]=\> array(10) { \["id"\]=\> "21005425" \["cnt"\]=\> "2" \["pv"\]=\> "651" \["uv"\]=\> "606" \["g_name"\]=\> string(51) "话费红包 10 元(支付宝话费立减金)ZM" \["order_rate"\]=\> "11.02%" \["sort"\]=\> "3" } \[2\]=\> array(10) { \["id"\]=\> "21005421" \["cnt"\]=\> "2" \["pv"\]=\> "651" \["uv"\]=\> "606" \["g_name"\]=\> string(51) "话费红包 10 元(支付宝话费立减金)ZM" \["order_rate"\]=\> "14.52%" \["sort"\]=\> "4" } }

相关推荐
JaguarJack7 小时前
PHP 基金会宣布:Streams 现代化 将引入事件循环与异步新能力
后端·php
亿坊电商14 小时前
PHP后端项目中多环境配置管理:开发、测试、生产的优雅解决方案!
服务器·数据库·php
ZIM学编程20 小时前
「学长有话说」作为一个大三学长,我想对大一计算机专业学生说这些!
java·c语言·数据结构·c++·python·学习·php
普普通通的南瓜1 天前
《国家安全法》下的 SSL 证书定位:网络数据加密的 “法定基石”
网络·php·ssl
BingoGo1 天前
PHP 组件未来:Livewire 4 正式发布,性能更快,功能更完整
后端·php
JaguarJack1 天前
PHP 组件未来:Livewire 4 正式发布,性能更快,功能更完整
后端·php
半桔1 天前
【IO多路转接】深入解析 poll:从接口到服务器实现
linux·运维·服务器·php
Z3r4y2 天前
【代码审计】ECShop_V4.1.19 SQL注入漏洞 分析
php·代码审计·ecshop
ICT系统集成阿祥2 天前
华为CloudEngine系列交换机堆叠如何配置,附视频
开发语言·华为·php
Xiaok10182 天前
libpcap 抓包:从打开网卡到解析数据包
服务器·网络·php