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版(3)
Oct 09 PHP
PHP如何得到当前页和上一页的地址?
Nov 27 PHP
php str_pad 函数使用详解
Jan 13 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
substr()函数中文版
2006/10/09 PHP
MySQL修改密码方法总结
2008/03/25 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
2014/07/08 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
layui中使用jquery控制radio选中事件的示例代码
2018/08/15 jQuery
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
Vant 中的Toast设置全局的延迟时间操作
2020/11/04 Javascript
python ipset管理 增删白名单的方法
2019/01/14 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
如何利用Python识别图片中的文字
2020/05/31 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
css3的过滤效果简单实例
2016/08/03 HTML / CSS
投标单位介绍信
2014/01/09 职场文书
行政人事岗位职责
2014/03/17 职场文书
护理工作个人总结
2015/03/03 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
中学教师教学工作总结
2015/08/13 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
导游词之北京明十三陵
2019/10/28 职场文书