您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14939|回复: 0
打印 上一主题 下一主题

[php学习资料] PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

[复制链接]
跳转到指定楼层
楼主
发表于 2018-10-7 02:53:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

     sort() 函数用于对数组单元从低到高进行排序。
2 t0 Z. A9 m  i7 @7 p& _8 o  rsort() 函数用于对数组单元从高到低进行排序。8 ^: z) b% c7 g! i4 h4 N) {& W
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。/ `2 Z$ l- K6 }# W
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。1 u4 @; U  c6 }  u4 y, M) S
  ksort() 函数用于对数组单元按照键名从低到高进行排序。4 x! U& l3 d! w1 p  {
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()- u& A- Q. S! K/ A5 Y* u  H

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
" m+ X- X$ F% T  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。3 I- F2 u6 H+ Q: Z+ x
  语法:" [) o7 v9 X. G' K, [" M
  bool sort( array &array [, int sort_flags] )5 d. U# B, r7 C( F% {- K
  可选参数 sort_flags 用于改变排序的行为:/ w9 S+ m8 n+ \4 l, C1 t
  sort_flags 取值 说明
" _' u2 t/ G, E/ h* w; |  SORT_REGULAR 正常比较单元
& S" C8 s8 L" J7 N  \  SORT_NUMERIC 单元被作为数字来比较
/ {$ P9 s+ k9 p7 A! Z; l' d  SORT_STRING 单元被作为字符串来比较
* V6 U5 a, f/ f! o  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    ) h9 v- L7 [$ ]4 V
  2. sort($arr);
    : V+ K. g2 S/ @; _
  3. print_r($arr);1 \! I/ o+ r  @0 X' [( z
  4. ?>
复制代码

运行该例子输出:

  1. Array ( [0] => a [1] => b [2] => c )
复制代码

      在本例中, $arr 数组单元被按照字母顺序排序,而数组单元经过排序后,键值重新分配。

  rsort()3 w& v$ m& V$ k7 f! v/ G* N5 A
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()6 d8 n( B1 h! ^  t3 R
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。  U2 ~: ~( F6 ^- @' x
  语法:" U8 T5 v! k5 e8 e8 u0 F
  bool asort( array &array [, int sort_flags] )
- q8 x/ ]% h( ?" i/ K, M  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。9 e( \$ p+ J& G9 o3 s( S5 s
  例子:5 [& Z6 r6 N2 W7 S
  

  1. $arr = array("b", "a", "c");* U9 M2 t# o* S
  2. asort($arr);# x0 A3 S" d% u( {: A& U
  3. print_r($arr);8 q- e) Y) e5 I
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()" \. |$ y8 y, U7 g
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()* e8 n! F# Z& F" y
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
' _; U" L7 ?3 b  本函数会保留原来的键名,因此常用于关联数组。: v4 N9 s* \% W5 K! G1 |. s1 Z) e5 g
  语法:
% y  `0 _6 h0 w( [  bool ksort( array &array [, int sort_flags] )+ P! C$ t0 d" x% @  I
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
7 b3 S' o4 N1 w1 m  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    % i# b9 U' M% T9 m& w$ d3 ~$ w
  2.   ksort($arr);
    6 V( U, p: |/ t
  3.   print_r($arr);
    $ {4 J; _% ~: e
  4.   ?>
复制代码

运行该例子输出:

  1. Array ( [a] => 20 [b] => 18 [c] => 25 )
复制代码

       krsort()
' t, D$ e! H7 ]6 k0 U" l
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

% K7 T4 r9 g- i/ W
+ E* y7 c: q% Q! |, g5 A
! }: _' }/ A( e1 a; f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 20:02 , Processed in 0.062522 second(s), 20 queries .

Copyright © 2001-2026 Powered by cncml! X3.2. Theme By cncml!