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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
PHP 存取 MySQL 数据库的一个例子
Oct 09 PHP
php读取数据库信息的几种方法
May 24 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
php中长文章分页显示实现代码
Sep 29 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 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从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
2015/12/25 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
索趣科技的答案
2007/02/07 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
人工神经网络算法知识点总结
2019/06/11 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
巴西女装购物网站:Eclectic
2018/04/24 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
医学院护理专业应届生求职信
2013/11/12 职场文书
新教师培训心得体会
2014/09/02 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
党员民主生活会材料
2014/12/15 职场文书