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 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
php 判断是否是中文/英文/数字示例代码
Sep 30 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
PHP常用的排序和查找算法
Aug 06 PHP
CodeIgniter配置之config.php用法实例分析
Jan 19 PHP
php生成带logo二维码方法小结
Apr 08 PHP
php htmlentities()函数的定义和用法
May 13 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
PHP convert_uudecode()函数讲解
Feb 14 PHP
PHP实现基于状态的责任链审批模式详解
May 31 PHP
PHP实现文件上传操作和封装
Mar 04 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
百度留言本js 大家可以参考下
2009/10/13 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
jquery自定义表格样式
2015/11/23 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
基于jquery实现多选下拉列表
2017/08/02 jQuery
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
基于JavaScript实现每日签到打卡轨迹功能
2018/11/29 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
vue微信分享插件使用方法详解
2020/02/18 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
详细解析Python中的变量的数据类型
2015/05/13 Python
Python工程师面试题 与Python Web相关
2016/01/14 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
Python实现登录接口的示例代码
2017/07/21 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
python与idea的集成的实现
2020/11/20 Python
德国宠物用品、宠物食品及水族馆网上商店:ZooRoyal
2017/07/09 全球购物
请假条范文大全
2014/04/10 职场文书
政府信息公开实施方案
2014/05/09 职场文书
幼儿发展评估方案
2014/06/11 职场文书
政风行风建设责任书
2014/07/23 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
挂靠协议书
2015/01/27 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python