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" } }

相关推荐
天宁3 小时前
Workerman + ThinkPHP 8 结合使用
php·thinkphp
qq_353737546 小时前
网站评分系统API
php
huaweichenai6 小时前
中国工商银行支付对接
php
搂着猫睡的小鱼鱼7 小时前
Ozon 商品页数据解析与提取 API
爬虫·php
岁杪杪11 小时前
关于运维:LINUX 零基础
运维·服务器·php
青茶36012 小时前
php怎么实现订单接口状态轮询(二)
前端·php·接口
一分半心动13 小时前
宝塔面板lnmp架构,tp6框架网站伪静态
nginx·php
Hao.Zhou14 小时前
phpstudy 进行 composer 全局配置
php·composer
zorro_z16 小时前
ThinkPHP8学习篇(十六):错误调试与辅助组件
php
ThatITs19 小时前
【无标题】
php