cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。( f, e0 V% e* m
  rsort() 函数用于对数组单元从高到低进行排序。
' m5 h2 a% U' x! ]' n! u  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
8 {7 r- m( x* t6 C* u$ [  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
# q4 K2 S0 M+ m& x, r0 v+ R6 W. t0 |  ksort() 函数用于对数组单元按照键名从低到高进行排序。
& d/ r! P( c; d6 i  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
/ X' M4 s' Y4 p& N

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。. e8 A9 Z. @8 n+ q; |: l$ Y
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
+ A3 ?% j1 ^) `2 S) f7 d  语法:1 T2 ^) n5 R8 ?5 I6 M1 U7 G) e/ u# G5 a
  bool sort( array &array [, int sort_flags] )
/ g9 F) f! C/ @. H. f# E  可选参数 sort_flags 用于改变排序的行为:8 i2 K: [2 ?% L' o( ^. I( k2 u
  sort_flags 取值 说明
2 l7 T8 @& Q4 y3 `6 J+ |( M  SORT_REGULAR 正常比较单元
1 f4 A1 V: i) N' L" }  SORT_NUMERIC 单元被作为数字来比较6 J( W9 z/ X% A5 ~/ C' P
  SORT_STRING 单元被作为字符串来比较* D3 ~& _  i3 X/ Q# a- D
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");  @  {7 D9 c  n1 y; b) H6 w& {6 g
  2. sort($arr);
    / |' i7 O0 W* C' A6 K9 s
  3. print_r($arr);! {9 f) b1 j5 w- T" W
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()% |& k1 U  V4 i2 o
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()1 g9 w# _2 F# h& b" [
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。1 {. \# \3 ~4 Y. [/ i1 i. J
  语法:+ _$ M; K8 ]* M( b. h
  bool asort( array &array [, int sort_flags] )0 M! S; a6 O. |" C
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。' l+ s6 B+ \5 O- U9 l) a2 s5 M
  例子:, o! `# Q* l5 m+ v
  

  1. $arr = array("b", "a", "c");% o5 b' J8 U5 \" q5 o0 ~
  2. asort($arr);
    5 o+ Y. q. e. x/ e
  3. print_r($arr);, z9 u9 q; j( v8 B8 R
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()+ {' D2 B6 s' T* Y: g
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
# E# G/ I. E, A9 G2 @
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。7 b2 G+ V8 j1 w9 |3 D  \) A7 h( @
  本函数会保留原来的键名,因此常用于关联数组。
: I0 I& }; Z* n" V( d% i2 `  语法:
; H, D+ P. B. ^3 s# Y# J# p' E  bool ksort( array &array [, int sort_flags] )
6 e5 O- _8 i8 u  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
. O. D7 C1 X% k' I2 m/ s1 ~. G  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);* q% x7 {; F- b# ]
  2.   ksort($arr);" H: C2 S6 u' I' n
  3.   print_r($arr);
    - {  s: i- j/ h2 Y* P; B
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
; @7 d7 v- R$ X1 V- Q
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


1 L! j1 Q$ K: G8 ~* R* o( i( p, X8 J; h

$ q, C: e9 Z1 V2 x. z




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