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多用户计数器代码
Mar 11 PHP
php 特殊字符处理函数
Sep 05 PHP
php header Content-Type类型小结
Jul 03 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
Jun 13 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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
在线短消息收发的程序,不用数据库
2006/10/09 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP _construct()函数讲解
2019/02/03 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
JQuery优缺点分析说明
2010/06/09 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
详解Python3.1版本带来的核心变化
2015/04/07 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
python使用tornado实现登录和登出
2018/07/28 Python
python实现自动登录后台管理系统
2018/10/18 Python
Python3中列表list合并的四种方法
2019/04/19 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
Java程序员综合测试题
2014/04/25 面试题
面试求职的个人自我评价
2013/11/16 职场文书
优秀交警事迹材料
2014/01/26 职场文书
公安机关查摆剖析材料
2014/10/10 职场文书
2014年机关党建工作总结
2014/11/11 职场文书
2014年社区卫生工作总结
2014/12/18 职场文书
期末考试复习计划
2015/01/19 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书