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"

}

}

相关推荐
Flynt8 分钟前
PHP 9.2 分 RCE 的补丁比公告早公开 3 天,我读完 389 个文件的 diff,也把"死在代码之前"跑了出来
安全·php·源码
萌动的小火苗1 小时前
MQTT的QoS0、QoS1、QoS2有什么区别?
开发语言·网络·python·php·信息与通信
silvamux_1 小时前
10款模型写“君幸食”讲解词:统一事实档案与逐款审校
开发语言·php
Smoothcloud润云2 小时前
GPU远程纳管节点频繁离线?心跳、DNS与时钟排障实战
运维·服务器·开发语言·人工智能·php·gpu算力
ESDWAN2 小时前
企业访问海外系统很慢,如何一步步定位问题?
服务器·网络·php
企业解惑小助手3 小时前
上网行为审计日志保存6个月怎么落地:从合规要求到存储架构
网络·架构·php
我是高手高手高高手5 小时前
宝塔 PHP多版本,切换PHP默认版本
开发语言·php
运维行者_19 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
星光开发者21 小时前
基于springboot智慧草场牛羊管理系统-计算机毕设【课程设计】50360
vue.js·spring boot·后端·mysql·php·课程设计·express
weixin_BYSJ198721 小时前
电竞先锋网站---附源码02032
java·vue.js·spring boot·python·django·tomcat·php