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


Posted in PHP onMay 02, 2017

今天发现一个很好用二维数组排序的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 相关文章推荐
thinkphp中连接oracle时封装方法无法用的解决办法
Jun 17 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
利用PHP实现短域名互转
Jul 05 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
php实现中文转数字
Feb 18 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
Mar 21 PHP
PHP引用返回用法示例
May 28 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
php strftime函数的详细用法
Jun 21 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
AJAX的使用方法详解
Apr 29 #PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 #PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 #PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 #PHP
PHP中Notice错误常见解决方法
Apr 28 #PHP
PHP实现查询手机归属地的方法详解
Apr 28 #PHP
PHP中Cookie的使用详解(简单易懂)
Apr 28 #PHP
You might like
PHP实现合并两个排序链表的方法
2018/01/19 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
Javascript操作dom对象之select全面解析
2017/04/24 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
React key值的作用和使用详解
2018/08/23 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
js实现转动骰子模型
2019/10/24 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
常用python编程模板汇总
2016/02/12 Python
Python双向循环链表实现方法分析
2018/07/30 Python
python编写实现抽奖器
2020/09/10 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
企业出纳岗位职责
2014/03/12 职场文书
表彰大会主持词
2014/03/26 职场文书
高三励志标语
2014/06/05 职场文书
庆元旦演讲稿
2014/09/15 职场文书
Mysql基础之常见函数
2021/04/22 MySQL
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL