php自定义排序uasort函数示例【二维数组按指定键值排序】


Posted in PHP onJune 19, 2019

本文实例讲述了php自定义排序uasort函数。分享给大家供大家参考,具体如下:

项目需要风险排序,按 I(安全)<L(低风险)<M(中风险)<H(高风险) 的级别来排序

由于H排在I的前面,所以不能直接用sort来排序,要自定义。

用uasort()函数来自定义排序:

/*
 * 二维数组按指定键值排须
 */
function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序//按 I<L<M<H 排序
  $arr_nums=$arr=array();
  foreach($array as $k=>$v){
    $arr_nums[$k]=$v[$key];
  }
  if($order=='asc'){
    uasort($arr_nums,'my_sort_asc');
  }else{
    uasort($arr_nums,'my_sort_desc');
  }
  foreach($arr_nums as $k=>$v){
    $arr[$k]=$array[$k];
  }
  return $arr;
}
function my_sort_desc($a,$b){
  if($a==$b) return 0;
  if($a=='I' && $b!='I') return 1;
  if($a=='L' && $b!='I') return 1;
  if($a=='L' && $b=='I') return -1;
  if($a=='M' && $b!='H') return -1;
  if($a=='M' && $b=='H') return 1;
  if($a=='H' && $b!='H') return -1;
}
function my_sort_asc($a,$b){
  if($a==$b) return 0;
  if($a=='I' && $b!='I') return -1;
  if($a=='L' && $b!='I') return -1;
  if($a=='L' && $b=='I') return 1;
  if($a=='M' && $b!='H') return 1;
  if($a=='M' && $b=='H') return -1;
  if($a=='H' && $b!='H') return 1;
}
PHP 相关文章推荐
第十一节--重载
Nov 16 PHP
php 无限极分类
Mar 27 PHP
php echo 输出字符串函数详解
May 13 PHP
php解决约瑟夫环示例
Apr 09 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
PHP响应post请求上传文件的方法
Dec 17 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 PHP
Yii2中datetime类的使用
Dec 17 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
laravel 时间格式转时间戳的例子
Oct 11 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 #PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 #PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 #PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 #PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 #PHP
Laravel使用RabbitMQ的方法示例
Jun 18 #PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 #PHP
You might like
php设计模式 Delegation(委托模式)
2011/06/26 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python地图绘制实操详解
2019/03/04 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Pycharm中如何关掉python console
2020/10/27 Python
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
毕业生面试求职信
2014/06/23 职场文书
语文教研活动总结
2014/07/02 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis