A-A+

thinkphp二维数组按照特定字段重新排序

2019年01月22日 编程技术 暂无评论

使用thinkphp从数据库中select出来的二维数组,需要按照数组库中某个特定字段进行重新排序,也就是给app提供一个接口,返回一个二维数组的值,这个二维数组需要重新排列一下,我们知道thinkphp是按照id默认排序的,而排序需要我们后台自己更改,所以就有了按照某个特定值重新排序,然后返回给接口。

查询了一下php手册,没有发现太好的函数,只好从tp官网找寻了一个函数方法,很好用,代码如下:

  1. /** 
  2.  * 根据指定字段排序二维数组,保留原有键值(升序) 
  3.  * @param $arr @输入二维数组 
  4.  * @param $var @要排序的字段名 
  5.  * return array 
  6.  */  
  7. private function mymArrsort($arr$var){  
  8.     $tmp=array();  
  9.     $rst=array();  
  10.     foreach($arr as $key=>$trim){  
  11.         $tmp[$key] = $trim[$var];  
  12.     }  
  13.     asort($tmp);  
  14.     $i=0;  
  15.     foreach($tmp as $key1=>$trim1){  
  16.         $rst[$i] = $arr[$key1];  
  17.         $i++;  
  18.     }//www.xiaohuboke.com  
  19.     return $rst;  
  20. }  

这段代码是升序排列,也就是返回来的数据是 0,1,2,3,4,5 这样的升序,最小值在最前面,最大值靠后,关键点在于 asort() 这个函数,如果我们需要降序的话,可以更改为 arsort() 即可,返回来的数据就会变成 5,4,3,2,1 这样的顺序。

标签:

给我留言