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 相关文章推荐
什么是MVC,好东西啊
May 03 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
php简单图像创建入门实例
Jun 10 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
php7 新增功能实例总结
May 25 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
php获取根域名方法汇总
2014/10/28 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
移动节点的jquery代码
2014/01/13 Javascript
禁用页面部分JavaScript不是全部而是部分
2014/09/03 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
Vue事件处理原理及过程详解
2020/03/11 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python简单验证码识别的实现方法
2019/05/10 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Django工程的分层结构详解
2019/07/18 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python shutil模块用法实例分析
2019/10/02 Python
浅析Django中关于session的使用
2019/12/30 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
函授药学自我鉴定
2014/02/07 职场文书
给妈妈洗脚活动方案
2014/08/16 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
2014年管理工作总结
2014/11/22 职场文书
创卫工作总结2015
2015/04/22 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python