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 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
php 信息采集程序代码
Mar 17 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php跨域cookie共享使用方法
Feb 20 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
DWZ+ThinkPHP开发时遇到的问题分析
Dec 12 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
PHP判断是否是json字符串
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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
ThinkPHP3.1新特性之命名范围的使用
2014/06/19 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
图片格式的JavaScript和CSS速查手册
2007/08/20 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
animation和transition的区别
2020/10/12 HTML / CSS
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
实习生个人的自我评价
2013/12/08 职场文书
小学捐书活动总结
2014/07/05 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
个人剖析材料范文
2014/09/30 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
开学典礼观后感
2015/06/15 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python