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中创建并处理图象
Oct 09 PHP
简体中文转换为繁体中文的PHP函数
Oct 09 PHP
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
解析php中如何调用用户自定义函数
Aug 06 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
浅谈php命令行用法
Feb 04 PHP
PHP加密解密类实例分析
Apr 20 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
php中namespace use用法实例分析
Jan 22 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
PHP7 foreach() 函数修改
Mar 09 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几种字符串连接的效率比较(详解)
2017/02/22 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
HTML Dom与Css控制方法
2010/10/25 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
小程序实现列表倒计时功能
2021/01/29 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
Python模块future用法原理详解
2020/01/20 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
python利用platform模块获取系统信息
2020/10/09 Python
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
班级德育工作实施方案
2014/02/21 职场文书
管理建议书范文
2014/05/13 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
小学优秀学生评语
2014/12/29 职场文书
保险内勤岗位职责
2015/04/13 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP