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 相关文章推荐
PHP动态变静态原理
Nov 25 PHP
使用eAccelerator加密PHP程序
Oct 03 PHP
PHP $_SERVER详解
Jan 16 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
php判断终端是手机还是电脑访问网站的思路及代码
Apr 24 PHP
PHP SOCKET编程详解
May 22 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
php图形jpgraph操作实例分析
Feb 22 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 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缩略图等比例无损压缩,可填充空白区域补充色
2011/06/10 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
JavaScript静态的动态
2006/09/18 Javascript
javascript 表单的友好用户体现
2009/01/07 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
浅谈jQuery操作类数组的工具方法
2016/12/23 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
微信小程序实现tab和swiper切换结合效果
2020/07/17 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
js实现点赞效果
2020/03/16 Javascript
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
python通过ssh-powershell监控windows的方法
2015/06/02 Python
python web.py开发httpserver解决跨域问题实例解析
2018/02/12 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
.NET方向面试题
2014/11/20 面试题
公司新员工的演讲稿注意事项
2014/01/01 职场文书
无毒社区工作方案
2014/05/23 职场文书
母亲去世追悼词
2015/06/23 职场文书
企业宣传稿范文
2015/07/23 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书