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 相关文章推荐
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php date与gmdate的获取日期的区别
Feb 08 PHP
关于PHP5 Session生命周期介绍
Mar 02 PHP
php 操作符与控制结构
Mar 07 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
Apr 04 PHP
浅谈php(codeigniter)安全性注意事项
Apr 06 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
PHP echo()函数讲解
Feb 15 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
PHP产生随机字符串函数
2006/12/06 PHP
PHP中用hash实现的数组
2011/07/17 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
Vue项目查看当前使用的elementUI版本的方法
2018/09/27 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
python如何为创建大量实例节省内存
2018/03/20 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
经济系大学生求职信
2013/10/01 职场文书
小学新学期寄语
2014/04/02 职场文书
老龄工作先进事迹
2014/08/15 职场文书
审计班子对照检查材料
2014/08/27 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
Java Socket实现多人聊天系统
2021/07/15 Java/Android