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 相关文章推荐
针对初学PHP者的疑难问答(1)
Oct 09 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
php函数实现判断是否移动端访问
Mar 03 PHP
PHP动态柱状图实现方法
Mar 30 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
php实现微信支付之退款功能
May 30 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
JavaScript枚举选择jquery插件代码实例
2020/11/17 jQuery
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python学生信息管理系统
2018/03/13 Python
Python的UTC时间转换讲解
2019/02/26 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
init进程的作用
2015/08/20 面试题
财务分析个人的自荐书范文
2013/11/24 职场文书
教师远程培训感言
2014/03/06 职场文书
酒店节能降耗方案
2014/05/08 职场文书
高三励志标语
2014/06/05 职场文书
电气自动化求职信
2014/06/24 职场文书
创业计划书之甜品店
2019/09/18 职场文书
html粘性页脚的具体使用
2022/01/18 HTML / CSS