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 相关文章推荐
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
linux下 C语言对 php 扩展
Dec 14 PHP
php 显示指定路径下的图片
Oct 29 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
新浪SAE云平台下使用codeigniter的数据库配置
Jun 12 PHP
php不使用copy()函数复制文件的方法
Mar 13 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
Jun 17 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
php结合md5的加密解密算法实例
Sep 30 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
PHP控制循环操作的时间
Apr 01 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
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php GeoIP的使用教程
2011/03/09 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
详解Python2.x中对Unicode编码的使用
2015/04/03 Python
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
Python骚操作之动态定义函数
2019/03/26 Python
python pygame实现球球大作战
2019/11/25 Python
django model object序列化实例
2020/03/13 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
计算机专业推荐信范文
2013/11/27 职场文书
设计师个人求职信范文
2014/02/02 职场文书
旅游活动总结
2014/08/27 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
计算机专业自荐信
2015/03/05 职场文书
活动总结模板大全
2015/05/11 职场文书
毕业设计致谢词
2015/05/14 职场文书
同学会感言
2015/07/30 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
新手入门Mysql--sql执行过程
2021/06/20 MySQL
MySQL RC事务隔离的实现
2022/03/31 MySQL