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"

}

}

相关推荐
andyweike2 小时前
php笔记
开发语言·笔记·php
JSON_L3 小时前
Fastadmin 框架生成条形码
php·fastadmin
treesforest13 小时前
网络安全中的IP地址查询:从日志里的一条线索到溯源的关键证据
网络·web安全·php
wjcroom15 小时前
实现老型号HP打印机手机无线打印的一些步骤和方法
开发语言·智能手机·php
Days205015 小时前
时间胶囊项目正式发布
javascript·gpt·php
DevUp15 小时前
老站往哪搬:织梦、帝国、PHPCMS 的出路
后端·php·cms
JaguarJack17 小时前
用 Jev 与 Laravel AI SDK 检测垃圾邮件和自动回复
后端·ai·php·laravel·服务端
lie..1 天前
30天从零开始学AI应用开发(Day 12):像产品一样稳:流式输出、报错重试、花钱控制
开发语言·人工智能·php
郑州光合科技余经理1 天前
同城电商系统:库存变更怎么同步到订单
java·开发语言·前端·后端·uni-app·php·ai编程
狗凯之家源码网1 天前
PHP 开源 IM 即时通讯系统效果实测与功能展示
开发语言·开源·php