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高级对象构建 多个构造函数的使用
Feb 05 PHP
php汉字转拼音的示例
Feb 27 PHP
php获取mysql字段名称和其它信息的例子
Apr 14 PHP
查找php配置文件php.ini所在路径的二种方法
May 26 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
php计算多维数组中所有值总和的方法
Jun 24 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
php数组冒泡排序算法实例
May 06 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
Jul 25 PHP
一个实用的php验证码类
Jul 06 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 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
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
php开发工具有哪五款
2015/11/09 PHP
Laravel日志用法详解
2016/10/09 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
学习jQuey中的return false
2015/12/18 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
python 默认参数问题的陷阱
2016/02/29 Python
python 获取网页编码方式实现代码
2017/03/11 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
Python实现的栈(Stack)
2018/01/26 Python
python如何实现int函数的方法示例
2018/02/19 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Python日期格式和字符串格式相互转换的方法
2020/02/18 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
消防工作实施方案
2014/06/09 职场文书
企业趣味活动方案
2014/08/21 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
SpringAop日志找不到方法的处理
2021/06/21 Java/Android