欢迎光临
我们一直在努力

php自定义排序uasort函数示例【二维数组按指定键值排序】

这篇文章主要介绍了php自定义排序uasort函数,结合实例形式分析了php实现二维数组按指定键值排序的相关操作技巧,需要的朋友可以参考下。

本文实例讲述了php自定义排序uasort函数,分享给大家供大家参考,具体如下:

项目需要风险排序,按 I(安全)<L(低风险)<M(中风险)<H(高风险) 的级别来排序

由于H排在I的前面,所以不能直接用sort来排序,要自定义。

用uasort()函数来自定义排序:

  1. /* 
  2.  * 二维数组按指定键值排须 
  3.  */ 
  4. function arr_sort($array,$key,$order="asc"){//asc是升序 desc是降序//按 I<L<M<H 排序 
  5.   $arr_nums=$arr=array(); 
  6.   foreach($array as $k=>$v){ 
  7.     $arr_nums[$k]=$v[$key]; 
  8.   } 
  9.   if($order=='asc'){ 
  10.     uasort($arr_nums,'my_sort_asc'); 
  11.   }else
  12.     uasort($arr_nums,'my_sort_desc'); 
  13.   } 
  14.   foreach($arr_nums as $k=>$v){ 
  15.     $arr[$k]=$array[$k]; 
  16.   } 
  17.   return $arr
  18. function my_sort_desc($a,$b){ 
  19.   if($a==$breturn 0; 
  20.   if($a=='I' && $b!='I'return 1; 
  21.   if($a=='L' && $b!='I'return 1; 
  22.   if($a=='L' && $b=='I'return -1; 
  23.   if($a=='M' && $b!='H'return -1; 
  24.   if($a=='M' && $b=='H'return 1; 
  25.   if($a=='H' && $b!='H'return -1; 
  26. function my_sort_asc($a,$b){ 
  27.   if($a==$breturn 0; 
  28.   if($a=='I' && $b!='I'return -1; 
  29.   if($a=='L' && $b!='I'return -1; 
  30.   if($a=='L' && $b=='I'return 1; 
  31.   if($a=='M' && $b!='H'return 1; 
  32.   if($a=='M' && $b=='H'return -1; 
  33.   if($a=='H' && $b!='H'return 1; 
  34. }

赞(0) 本模板价: 打赏
未经允许不得转载:站长分享圈 » php自定义排序uasort函数示例【二维数组按指定键值排序】