当前位置: 首页 > news >正文

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"

http://www.dtcms.com/a/469411.html

相关文章:

  • Ubuntu 20.04 安装 Redis
  • etcd节点噶了导致的k8s集群瘫痪处理参考——筑梦之路
  • stm32底层项目20251011
  • http://localhost:7474/browser/ 登陆之后账号密码neo4j / neo4j 不对 页面出现以下:
  • 网站后台添加不了图片2008r2做网站
  • 学工网站建设博物馆网站建设说明
  • RabbitMQ概述,Rabbitmq是什么
  • C 语言12:字符串函数全解析
  • 国家城乡建设规划部网站邢台专业网站建设价格
  • 三层架构:解耦 JavaWeb 开发的核心范式
  • MySQL————表的约束
  • 速度达24.3MB/s,最新精简可用版!
  • 分业务采用差异化模式:全面提升 SQL Server 系统的并发性能、可靠性与数据准确性
  • 【Linux】应用层自定义协议与序列化
  • 文件上传漏洞: .htaccess文件
  • 【GD32】软件I2C
  • 温州产品推广网站服务网站建设方案
  • 08-docker综合应用
  • 电商网站建设与运营哦在线图片编辑助手
  • 十一款c++小游戏
  • 15-verilog的延时打拍问题记录
  • skynet.newservice接口分析
  • C# 中 Excel 工作表打印前页面边距的设置方法
  • uniapp学习【vue3在uniapp中语法,使用element】
  • 网站建设的基本流程和技术规范懒人免费建站模板
  • Linux的Ext文件系统:硬盘理解和inode及软硬链接
  • 可靠的媒体发稿网有哪些
  • 鸿蒙剪贴板服务的新特性
  • 上海外贸营销网站建设做app的模板下载网站
  • Linux中Tomcat部署项目