PHP二维数组排序简单实现方法


Posted in PHP onFebruary 14, 2016

本文实例讲述了PHP二维数组排序简单实现方法。分享给大家供大家参考,具体如下:

function multi_compare($a, $b)
{
  $val_arr = array(
      'gold'=>'asc',
      'silver'=>'desc'//还可以增加额外的排序条件
  );
  foreach($val_arr as $key => $val){
    if($a[$key] == $b[$key]){
      continue;
    }
    return (($val == 'desc')?-1:1) * (($a[$key] < $b[$key]) ? -1 : 1);
  }
  return 0;
}
$arr = array(
  array('gold'=>1, 'silver'=>2),
  array('gold'=>8, 'silver'=>10),
  array('gold'=>8, 'silver'=>8),
  array('gold'=>2, 'silver'=>1),
);
uasort($arr, 'multi_compare');
print_r($arr);

运行结果如下:

Array
(
  [0] => Array
    (
      [gold] => 1
      [silver] => 2
    )
  [3] => Array
    (
      [gold] => 2
      [silver] => 1
    )
  [1] => Array
    (
      [gold] => 8
      [silver] => 10
    )
  [2] => Array
    (
      [gold] => 8
      [silver] => 8
    )
)

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP中Session的概念
Oct 09 PHP
php调用mysql数据 dbclass类
May 07 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
ThinkPHP实例化模型的四种方法概述
Aug 22 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
PHP串行化与反串行化实例分析
Dec 27 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
php的闭包(Closure)匿名函数初探
Feb 14 #PHP
PHP5.3新特性小结
Feb 14 #PHP
PHP解压tar.gz格式文件的方法
Feb 14 #PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 #PHP
PHP使用socket发送HTTP请求的方法
Feb 14 #PHP
PHP闭包函数详解
Feb 13 #PHP
php设计模式之委托模式
Feb 13 #PHP
You might like
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
开发用到的js封装方法(20种)
2018/10/12 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[03:11]2014DOTA2国际邀请赛-VG掉入败者组 独家专访357
2014/07/19 DOTA
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
使用python分析git log日志示例
2014/02/27 Python
Python中的多重装饰器
2015/04/11 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
python nmap实现端口扫描器教程
2020/05/28 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
python3让print输出不换行的方法
2020/08/24 Python
Python pip 常用命令汇总
2020/10/19 Python
2013年入党人员的自我鉴定
2013/10/25 职场文书
机械设计职业生涯规划书
2013/12/27 职场文书
会计顶岗实习心得
2014/01/25 职场文书
中学教师培训制度
2014/01/31 职场文书
C++程序员求职信范文
2014/04/14 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL