根据数组中的值进行排序并且返回指定的元素个数

作者:谢高升 发布:2018-03-15 浏览:2418次

根据数组中的值进行排序并且返回指定的元素个数;

array_sort() $limit 是指定返回数组的元素个数

 /**
  * Created by PhpStorm.
  * function: array_sort
  * Description:数组排序
  * User: Xiaoxie
  * Email 736214763@qq.com
  * @param $arr数组
  * @param $keys需要根据排序的键值
  * @param string $type
  * @param string $limit 需要保存几个键值
  * @return array
  *
  */
public function array_sort($arr, $keys, $type = 'desc',$limit = '')
 {
     $key_value = $new_array = array();

     foreach ($arr as $k=>$v)
     {
         //把需要排序的字段值放入新的数组里面
         if(isset($v[$keys])){
             $key_value[$k] = $v[$keys];
         }

     }

     if ($type=='asc')
     {
         //根据键值排序
         asort($key_value);
     }else{
         arsort($key_value);
     }
     reset($key_value);

     //还原数组
     $i = 0 ;
     foreach ($key_value as $k=>$v)
     {
         $new_array[$k] = $arr[$k];
         $i++;
         if ($limit )
         {
             if ($limit < $i){
                 unset($new_array[$k]);
             }
         }
     }

     return array_values($new_array);
 }


标签: php array_sort