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"

}

}

相关推荐
x_x-F28 分钟前
网络数据从网卡到用户态:一场基于内存所有权转移的接力赛
开发语言·网络·php
g10565591391 小时前
LAMP博客平台Wordpress实战
android·mysql·nginx·php
许彰午3 小时前
# allbytaskid——一个接口扛六个DataStore
运维·服务器·php
sbjdhjd10 小时前
企业站 SQL 注入实战:PCRE 正则回溯绕过关键词 WAF 完整实战 | 进阶02
sql·安全·web安全·网络安全·ai·开源·php
weixin_BYSJ198711 小时前
springboot技能与工具共享小程序---附源码29657
java·javascript·spring boot·python·小程序·django·php
张小姐的猫11 小时前
【Linux】网络编程 —— 传输层协议 TCP(下)
linux·运维·服务器·网络·tcp/ip·http·php
weixin_BYSJ198711 小时前
flask民族服饰饰品商城小程序---附源码37399
java·javascript·spring boot·python·小程序·django·php
峥嵘life21 小时前
Android16 311Y3 EAP-TLS 网络连接失败分析与修复总结
android·开发语言·人工智能·php
AC赳赳老秦1 天前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw
AC赳赳老秦1 天前
风控岗应用:OpenClaw 采集公开司法与经营异常数据,自动生成企业风险评估报告
大数据·c语言·数据库·人工智能·python·php·openclaw