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 应用程序安全防范技术研究
Sep 25 PHP
PHP高自定义性安全验证码代码
Nov 27 PHP
如何用php生成扭曲及旋转的验证码图片
Jun 07 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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的历史和优缺点
2006/10/09 PHP
基于php-fpm的配置详解
2013/06/03 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
php实现分页显示
2015/11/03 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
学习python (2)
2006/10/31 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
对python模块中多个类的用法详解
2019/01/10 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
Python中qutip用法示例详解
2020/10/02 Python
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
Python是如何进行类型转换的
2013/06/09 面试题
团日活动总结怎么写
2014/06/25 职场文书
英文自荐信范文
2015/03/25 职场文书
小学生暑假安全保证书
2015/07/13 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python