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

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

今天发现一个很好用二维数组排序的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 的数组单元会排在前面

标签:排序,php,usort
0
投稿

猜你喜欢

  • Python学习笔记_数据排序方法

    2022-03-07 01:28:33
  • pytorch DistributedDataParallel 多卡训练结果变差的解决方案

    2021-09-24 14:31:43
  • oracle 优化的一点体会

    2009-10-02 17:59:00
  • python生成遍历暴力破解密码的方法

    2021-07-02 21:28:54
  • Selenium 滚动页面至元素可见的方法

    2022-06-01 14:01:05
  • python实现m3u8格式转换为mp4视频格式

    2021-05-09 00:48:02
  • Ext2.0.2经典的一个JS组件(带EXT中文手册)

    2009-04-13 12:24:00
  • PHP中soap的用法实例

    2023-11-14 09:40:24
  • Python带动态参数功能的sqlite工具类

    2022-10-02 14:05:15
  • Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)

    2023-12-08 18:55:11
  • Python项目 基于Scapy实现SYN泛洪攻击的方法

    2023-01-15 01:34:30
  • Python实现Const详解

    2021-06-24 16:18:40
  • pytorch实现用Resnet提取特征并保存为txt文件的方法

    2023-04-10 17:21:09
  • JavaScript实现星座查询功能 附详细代码

    2024-05-05 09:15:43
  • python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图

    2023-09-06 10:45:28
  • 详解pyqt中解决国际化tr()函数不起作用的问题

    2021-03-31 05:15:56
  • Python常用工具之音频调整音量

    2023-10-29 03:15:33
  • Python中XlsxWriter模块简介与用法分析

    2022-12-29 15:10:57
  • SQL Server中的排名函数与分析函数详解

    2024-01-17 03:28:54
  • SQL Server 数据库故障修复顶级技巧之一

    2010-05-01 18:49:00
  • asp之家 网络编程 m.aspxhome.com