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 执行系统命令的方法
Jul 07 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
Jun 19 PHP
PHP生成条形图的方法
Dec 10 PHP
php+ajax实时输入自动搜索匹配的方法
Dec 26 PHP
PHP Hash算法:Times33算法代码实例
May 13 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
PHP验证类的封装与使用方法详解
Jan 10 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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格式化金额函数分享
2015/02/02 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
js获取select标签选中值的两种方式
2014/01/09 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
jQuery模仿阿里云购买服务器选择购买时间长度的代码
2016/04/29 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
bootstrap下拉分页样式 带跳转页码
2018/12/29 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
Python面向对象之类和对象实例详解
2018/12/10 Python
Python File(文件) 方法整理
2019/02/18 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
centos7之Python3.74安装教程
2019/08/15 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
Matplotlib绘制雷达图和三维图的示例代码
2020/01/07 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
python如何进入交互模式
2020/07/06 Python
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
社会实践先进工作者事迹材料
2014/05/06 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
感谢信的格式
2015/01/21 职场文书
租车协议书
2015/01/27 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技