cncml手绘网

标题: PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析 [打印本页]

作者: admin    时间: 2018-10-7 02:53
标题: PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

     sort() 函数用于对数组单元从低到高进行排序。" E* F0 {9 W+ z; M
  rsort() 函数用于对数组单元从高到低进行排序。, s9 M+ w' T3 G  @
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
. Q; o; z2 p4 }4 b- h& Y  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
1 H3 w  t% m- }# }; |- m/ u# D1 q: s  ksort() 函数用于对数组单元按照键名从低到高进行排序。
4 [8 x6 g0 m* J7 I; w- X' m5 W  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()9 V& Z$ F2 I/ N2 Y  R+ q9 ~/ O

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。" v/ h! \6 q, ]
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
$ j7 [& A2 o  x" J) {. ^/ w( m  语法:0 A4 S. a( I) K8 F
  bool sort( array &array [, int sort_flags] ): K6 m  e- ~0 \9 q' [
  可选参数 sort_flags 用于改变排序的行为:) |: N' w! G$ l1 R- A1 V
  sort_flags 取值 说明
1 W/ I0 |. B% @* {* v. j! k" ~" N  SORT_REGULAR 正常比较单元% y. l+ l2 q  D" X, E
  SORT_NUMERIC 单元被作为数字来比较
  G! ]2 l* @2 y/ S( d5 Y" N  SORT_STRING 单元被作为字符串来比较
- B% u6 y# w! w/ a; f% c  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");6 c  v) c: i$ y" f* D
  2. sort($arr);- q. Q4 j. e9 _+ |* |3 p
  3. print_r($arr);1 A0 _3 q) h3 u$ f% ~! Q% i$ J
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
! U1 G8 o/ d/ X5 }3 |# R) H9 o  U
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort(): {& o7 `! |- w% Y6 f
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。" o1 R2 {) y1 z7 |& U
  语法:
# O/ M$ ]; m. V- f; O  bool asort( array &array [, int sort_flags] )
* t, }# w* \6 F9 U$ G1 L  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
' q! I' @! j0 k9 D4 ~6 M+ O6 \  例子:
, b! i. t* Z5 L1 a+ o) z  

  1. $arr = array("b", "a", "c");
    1 `! ~& |6 ^% [' o' a& V6 {$ }! `2 Y
  2. asort($arr);
    + o+ Z; I, |9 |' m' @5 F9 k6 R' l
  3. print_r($arr);
    $ L: {4 h# D  m7 x
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
4 C! s5 @# r9 V1 ~8 v
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort(). H( C# k1 e( X2 ]
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。7 w' g* x" Y* e5 p7 n. n
  本函数会保留原来的键名,因此常用于关联数组。
( L  H5 s3 f/ w  语法:
& G; E: C8 Q- {  bool ksort( array &array [, int sort_flags] )  T$ h" B1 d. J8 P" N3 e
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。+ _/ O: {$ Y# u. I* x# l
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    . f( z7 K  W4 `; D" t/ Y1 i
  2.   ksort($arr);
    , @3 w; @% U( c2 W) f
  3.   print_r($arr);
    % c/ X6 C( A& x1 U
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
6 _- k/ `( k, s5 Y0 u, R
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


/ O& ~7 W+ D& a2 h) [7 }
" U: E# s: V) s" K" N8 p9 l( G& |' P6 |+ H- P% S





欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2