cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。
$ O" B' _% J- K5 V- {, T  rsort() 函数用于对数组单元从高到低进行排序。2 T( m* h$ Y! {  M* d
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
6 Y: g" T* S% Q4 a! G  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
6 j% Q  Z5 |9 ]  ksort() 函数用于对数组单元按照键名从低到高进行排序。+ I* u3 B. p+ d) W
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()% T" l9 F# q1 P1 Z& j/ j6 @: q

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。4 a% [  J. b6 W* z7 S
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。3 n; ^; l. M/ e5 l8 ~0 `
  语法:0 \1 m1 r# }8 G: h
  bool sort( array &array [, int sort_flags] )
) z: f1 {6 p7 x" h; k3 N- d& X  可选参数 sort_flags 用于改变排序的行为:; m; j$ Q: o9 c
  sort_flags 取值 说明! q2 ?$ B4 Z' B# b" s4 }
  SORT_REGULAR 正常比较单元4 ^. Q5 s! Q' p% S0 o
  SORT_NUMERIC 单元被作为数字来比较
$ v) _; Z. b, T6 h$ v% o  SORT_STRING 单元被作为字符串来比较3 N0 S* x7 P. m" `% B  k
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    0 `# l/ T6 B7 {- u/ S: h
  2. sort($arr);" k; o  j8 E9 `" ^
  3. print_r($arr);
    2 ?( O& Q& V/ {1 C/ ?6 A
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
! u6 X) S" K( P: z
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
9 Q* w* [+ f9 s" ?
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
3 \5 f( ^1 g/ R2 ^  语法:) N# [+ w. L* n5 @" T0 m1 Z( L
  bool asort( array &array [, int sort_flags] )7 m' D6 S8 z" E9 M
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
$ G( B5 v" A) L3 A" }  例子:
. i5 a/ z- k1 ?% o$ P  

  1. $arr = array("b", "a", "c");
    7 X8 w! `  d. e% h/ [
  2. asort($arr);
    5 q) _+ R. `# c5 ~2 O
  3. print_r($arr);
      Z5 }4 W: a6 e4 N2 Z; u1 J
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
0 N& ^9 k' u& i
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
8 ^9 g8 q2 q; i
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。# |; F: s6 p. g' ]6 }
  本函数会保留原来的键名,因此常用于关联数组。
- N* P, P$ H5 _8 V2 E  语法:
) o: D, z: [( b# T  bool ksort( array &array [, int sort_flags] )2 i& f& M( L1 H: G" J: Z
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。: U7 s4 C1 @! Z) ^0 k9 ~
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    3 V* E+ u9 \( H- x/ Q& O: ?+ d- o
  2.   ksort($arr);' X" g3 h. `' j7 }$ a' s
  3.   print_r($arr);
    4 ]% _- G3 {* g: w
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
- ~! O3 }0 P$ `$ ?$ G5 U. [$ K
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


- e3 \8 N8 Q, k6 u$ W% }2 ?* J& U& J. v
  R* I% c  {% O  j1 Q





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