网络编程
位置:首页>> 网络编程>> php编程>> php usort 使用用户自定义的比较函数对二维数组中的值进行排序

php usort 使用用户自定义的比较函数对二维数组中的值进行排序

作者:mdxy-dxy  发布时间:2023-11-21 23:08:28 

标签:排序,php,usort

今天发现一个很好用二维数组排序的php方法,usort,推荐给大家,以后二维数组里面,要按照一个字段的值排序用这个方法简单高效,例如下面的数组:


[guess_subject] => Array
   (
     [0] => Array
       (
         [subject_id] => 4587
         [game_id] => 9228
         [parent_category_id] => 78
         [subject_title] => 全场比赛两队总得分之和是
         [subject_date_time] => 1490668200
         [status] => 2
         [subject_answer] => 0
         [totle_join] => 0
         [max_nickname] =>
         [max_currency] =>
       )

     [1] => Array
       (
         [subject_id] => 4588
         [game_id] => 9228
         [parent_category_id] => 78
         [subject_title] => 本场比赛是否有加时赛
         [subject_date_time] => 1490668200
         [status] => 2
         [subject_answer] => 0
         [totle_join] => 0
         [max_nickname] =>
         [max_currency] =>
         

       )

     [2] => Array
       (
         [subject_id] => 4584
         [game_id] => 9228
         [parent_category_id] => 78
         [subject_title] => 第二节两队总得分之和是
         [subject_date_time] => 1490668200
         [status] => 1
         [subject_answer] => 0
         [totle_join] => 0
         [max_nickname] =>
         [max_currency] =>
       )

     [3] => Array
       (
         [subject_id] => 4585
         [game_id] => 9228
         [parent_category_id] => 78
         [subject_title] => 第三节两队总得分之和是
         [subject_date_time] => 1490668200
         [status] => 2
         [subject_answer] => 0
         [totle_join] => 0
         [max_nickname] =>
         [max_currency] =>
        )
   )

要按照status字段的升序排列的话,只需要这样写


foreach($data as $key => &$value) {
     // 按照status的升序排序,使用用户自定义的比较函数对数组中的值进行排序,
     // 本函数将用用户自定义的比较函数对一个数组中的值进行排序。 如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。
     // 在第一个参数小于,等于或大于第二个参数时,该比较函数必须相应地返回一个小于,等于或大于 0 的整数。
     usort($value['guess_subject'], function($a, $b){
       if ($a['status'] == $b['status'])
         return 0;
       return ($a['status'] < $b['status']) ? -1 : 1;
     });
     
   }
   return $data;

就会按照status的 升序排列啦, status=1 的数组单元会排在前面

0
投稿

猜你喜欢

  • 引言上一篇文章中引入了消息队列对秒杀流量做削峰的处理,我们使用的是Kafka,看起来似乎工作的不错,但其实还是有很多隐患存在,如果这些隐患不
  • 【原理介绍】通过NETCONF,网管能够用可视化的界面统一管理网络中的设备,并且安全性高、可靠性强、扩展性强。如下图所示,网管与网络中的所有
  • 近段时间看了一些论坛上面关于分页的ASP程序依然有许多的关注者,但里面只有代码,没有详细的解释,对于初学者来说,这样总是得不到真正的掌握,此
  •     嵌套模板(Nested Template),其实就是基于另一个模板创建的模板。要创建嵌套模板,首先要保
  • 内容摘要:本文介绍了使用CSS结合javascript来实现对超链接的类型进行标注,让浏览者明确是zip,doc,pdf或其它格式的文件。这
  • 登录与注册两个按钮似乎天生就应该是排在一起的,就像很多地方的“确定”与“取消”一样,甚至排在一起的意义远远强于后者。于是长期以来,用户们也形
  • 在SQL Server中,为了查询性能的优化,有时我们就需要对数据表通过建立索引的方式,目的主要是根据查询要求,迅速缩小查询范围,避免全表扫
  • 本文实例为大家分享了Python基于OpenCV实现人脸检测,并保存的具体代码,供大家参考,具体内容如下安装opencv如果安装了pip的话
  • 训练的时候内存一直在增加,最后内存爆满,被迫中断。后来换了一个电脑发现还是这样,考虑是代码的问题。检查才发现我的代码两次存了loss,只有一
  • 使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=
  • 除了IE浏览器,其他所有主流的浏览器均支持原生的 Base64 编码:btoa(text) – base64 encodes text. a
  • 一:队列配置队列的配置文件放置在config/queue.php文件中,laravel框架中支持的队列驱动有:sync, database,
  • 1、卓越亚马逊的首页轮换图片,每刷新一次,都是随机不同的顺序显示,这样的设计解决了对于较多图片轮换而靠后的图片信息很少被看到的问题,这点对于
  • Java    Java 是由 Sun 公司开发而成的一种编程语言,利用 Jave 写成的小程序叫做 Java
  • <script> Array.prototype.swap = function(i, j) { var temp = this
  • SQL*DBA命令的安全性: 如果您没有SQL*PLUS应用程序,您也可以使用SQL*DBA作SQL查权限相关的命令只能分配给Oracle软
  • 以前我就是一篇博文 就给出一个好用的函数,它在我几篇博文中被广泛运用的。最近看了不少东西,于是便有了这篇博文,以梳理我学到的新东西。毫无疑问
  •  这是我研究网页切片算法的一个汇总想法。之前我写过:一种面向搜索引擎的网页分块、切片的原理,实现和演示,随着工作的深入,逐渐碰到以
  • 最近对list设计感兴趣,今天说的是list视图方式的设计。感觉有些细节非常有意思,拿出来跟大家讨论。首先我们来看下windows下文件夹管
  • 本文实例讲述了go语言睡眠排序算法。分享给大家供大家参考。具体分析如下:睡眠排序算法是一个天才程序员发明的,想法很简单,就是针对数组里的不同
手机版 网络编程 asp之家 www.aspxhome.com