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 相关文章推荐
Discuz 模板引擎的封装类代码
Jul 18 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
求PHP数组最大值,最小值的代码
Oct 31 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
Jul 01 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
Yii配置文件用法详解
Dec 04 PHP
php内嵌函数用法实例
Mar 20 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
PHPMAILER实现PHP发邮件功能
Apr 18 PHP
PHP实现SMTP邮件的发送实例
Sep 27 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
python自动化测试实例解析
2014/09/28 Python
python批量提取word内信息
2015/08/09 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python绘制多个子图的实例
2019/07/07 Python
IntelliJ 中配置 Anaconda的过程图解
2020/06/01 Python
python适合做数据挖掘吗
2020/06/16 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
大学生毕业自我鉴定范文
2014/02/03 职场文书
先进集体获奖感言
2014/02/13 职场文书
《草虫的村落》教学反思
2014/02/16 职场文书
效能风暴心得体会
2014/09/04 职场文书
部门2014年度工作总结
2014/11/12 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
收入证明怎么写
2015/06/12 职场文书
毕业班工作总结
2015/08/10 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
node快速搭建后台的实现步骤
2022/02/18 NodeJs