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维护文件系统
Oct 09 PHP
php heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
轻松修复Discuz!数据库
May 03 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
解析php多线程下载远程多个文件
Jun 25 PHP
php数组编码转换示例详解
Mar 11 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
Jun 05 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
Yii2中如何使用modal弹窗(基本使用)
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
1 Tube Radio
2021/03/02 无线电
php之XML转数组函数的详解
2013/06/07 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
laravel安装和配置教程
2014/10/29 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
在JS中a标签加入单击事件屏蔽href跳转页面
2016/12/16 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python实现的简单计算器功能详解
2018/08/25 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
动态密码技术
2012/10/18 面试题
内刊编辑求职自荐书范文
2014/02/19 职场文书
副总经理岗位职责
2014/03/16 职场文书
优秀公益广告词大全
2014/03/19 职场文书
合作协议书范本
2014/10/25 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
《秦兵马俑》教学反思
2016/02/24 职场文书