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小经验:解析preg_match与preg_match_all 函数
Jun 29 PHP
php中替换字符串中的空格为逗号','的方法
Jun 09 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
十大使用PHP框架的理由
Sep 26 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP实现批量检测网站是否能够正常打开的方法
Aug 23 PHP
PHP实现文件上传功能实例代码
May 18 PHP
php 获取xml接口数据的处理方法
May 31 PHP
PHP实现微信对账单处理
Oct 01 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
数据结构之利用PHP实现二分搜索树
Oct 25 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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
Python中__init__和__new__的区别详解
2014/07/09 Python
Unicode和Python的中文处理
2017/03/19 Python
Python解决八皇后问题示例
2018/04/22 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
优秀学生干部个人的自我评价
2013/10/04 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
课外活动总结范文
2014/07/09 职场文书
庆元旦活动总结
2014/07/09 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
单位接收函范文
2015/01/30 职场文书
辅导员学期工作总结
2015/08/14 职场文书
php字符串倒叙
2021/04/01 PHP
详解Mysql 函数调用优化
2021/04/07 MySQL