A-A+
thinkphp二维数组按照特定字段重新排序
使用thinkphp从数据库中select出来的二维数组,需要按照数组库中某个特定字段进行重新排序,也就是给app提供一个接口,返回一个二维数组的值,这个二维数组需要重新排列一下,我们知道thinkphp是按照id默认排序的,而排序需要我们后台自己更改,所以就有了按照某个特定值重新排序,然后返回给接口。
查询了一下php手册,没有发现太好的函数,只好从tp官网找寻了一个函数方法,很好用,代码如下:
- /**
- * 根据指定字段排序二维数组,保留原有键值(升序)
- * @param $arr @输入二维数组
- * @param $var @要排序的字段名
- * return array
- */
- private function mymArrsort($arr, $var){
- $tmp=array();
- $rst=array();
- foreach($arr as $key=>$trim){
- $tmp[$key] = $trim[$var];
- }
- asort($tmp);
- $i=0;
- foreach($tmp as $key1=>$trim1){
- $rst[$i] = $arr[$key1];
- $i++;
- }//www.xiaohuboke.com
- return $rst;
- }
这段代码是升序排列,也就是返回来的数据是 0,1,2,3,4,5 这样的升序,最小值在最前面,最大值靠后,关键点在于 asort() 这个函数,如果我们需要降序的话,可以更改为 arsort() 即可,返回来的数据就会变成 5,4,3,2,1 这样的顺序。