加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP常见数组排序方法小概括

发布时间:2022-07-21 12:43:58 所属栏目:PHP教程 来源:互联网
导读:1.简单数组排序 sort() 函数和rsort() 函数: 语法规则: bool sort(array array [,int sort_flags] bool rsort(array array [.int_sort_flags] 参数: 第一个参数是排序数组对象 第二个参数是可以选的 可选值: SORT_REGULAR:是默认值,将自动识别数组的元素
  1.简单数组排序 sort() 函数和rsort() 函数:
  语法规则:
 
 
  bool sort(array &array [,int sort_flags]
 
  bool rsort(array &array [.int_sort_flags]
 
  参数:
 
    第一个参数是排序数组对象
 
    第二个参数是可以选的 可选值:
 
      SORT_REGULAR:是默认值,将自动识别数组的元素类型进行排序
      SORT_NUMERIC:用于数组元素排序
      SORT_STRING:用于字符串排序
      SORT_LOCALE_STRING:根据当前的locale设置来把元素当作字符串比较
 
  示例:
 
 
 
  $a=array(4,7,9,1);
 
  sort($a);
 
  pirnt_r($a);
 
  rsort($a);
 
  print_r($a);
 
  2.根据键名对数组排序
  定义: ksort() 函数按照键名对数组进行有小到大的排序。 krsort()与ksort()函数相反,排序后为数组值保持原来的键。
 
  示例
 
 
 
  $data= array(5=>"five",8=>"eight",1=>"one",7=>"seven");
 
  ksrot($data);
 
  print_r($data);
 
  krsot($data);
 
  print_r($data);
 
  3.根据元素值排序
  定义 : asort() 从小到大 / arsort() 从大到小,用这个函数排序,原始键名将被忽略,使用依次数字重新索引数组下标
 
  示例 :
 
  $data=array("a"=>1,"b"=>2,"c"=>3);
 
  asort($data);
 
  print_r($data);
 
  arsort($data);
 
  print_r($data);
 
  4.自然排序
  定义 : 是个非常特殊的排序方式,这种方式使用认知而不是使用计算规则,这种特性称为——自然排序法,即数字从1到9,字母从a-z,短者优先。
 
  示例 :
 
 
 
 
  $data=array("file1.txt","file11.txt","file111.txt");
 
  natsort($data);//普通自然排序
 
  natcasesort($data);//忽略大小写
 
  5.根据用户自定义排序规则
  语法规则 :
 
 
  bool usort(array &array ,callback cmp_function)
 
  bool uasort(array &array,callback cmp_function)
 
  bool uksort(array &array,callback cmp_function)
 
  说明 : 自定义回调函数,需要两个参数,分别是数组两个连续元素,比较第一个参数小于,大于,等于第二个参数是分别返回 0,1,-1
 
  示例 :
 
 
  $data= array("ab","abc","a","ac","abcd");
 
  usrot($data,"mysortByLen");
 
  function mysortByLen($one,$two){
 
   if(strlen($one)== strlen($two)){
 
    return 0;
 
   }else{
 
   return (strlen($one)>strlen($two))?1:-1;
 
  }
 
  6.多维数组排序
  定义 : array_multisort()函数对多个数组排序,或者根据某一维或多维对多维数组排序。
 
 
  bool array_multisort(array array1 [,mixed arg,[,array ....]])
 
  示例:
 
 
 
  $data=array(
 
    array("id"=>1,"name"=>4),
 
    array("id"=>1,"name"=>2),
 
    array("id"=>2,"name"=>3)
 
  );
 
  foreach($data as $key=>$value){
 
   $ids[$key]=$value["id"];
 
   $names[$key]=$value["name"]
 
  }
 
  array_multisort($data,$ids,$names);
 
  print_r($data);
 
  输出结果:
 
 
 
  array(    array("id"=>1,"name"=>2),    array("id"=>1,"name"=>4),    array("id"=>2,"name"=>3)
 
   );

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读