cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。
8 h1 E; E8 K, i- h  f- F) h  rsort() 函数用于对数组单元从高到低进行排序。0 P7 k- t* P" ~' h7 ?6 `- N; I: R+ Y
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。4 ~$ I7 R- n$ B1 U
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。) ?) }  i1 U9 `  t9 ~( J$ s" k
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
+ w" y8 w/ R+ ~1 T* E9 Y  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
  |$ B6 m; k+ F4 p* ~' ]4 ^. o

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
, r. d" |# ^1 n  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
; [: P9 C1 q& `& ]  语法:6 b1 z; y* B/ h8 ~. w) @
  bool sort( array &array [, int sort_flags] ). b. j: w3 g* V! |
  可选参数 sort_flags 用于改变排序的行为:
/ n/ c- P3 m, U8 m  sort_flags 取值 说明
6 p1 h4 }' y5 L' A5 }  SORT_REGULAR 正常比较单元
/ l) q1 p3 D- l6 j0 k0 T2 g8 R  SORT_NUMERIC 单元被作为数字来比较' M; E/ Z! z0 a* E% c
  SORT_STRING 单元被作为字符串来比较! z8 H3 P6 ~; C
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    / j: a, }1 y, L2 v/ P
  2. sort($arr);$ R0 H. F) G3 I7 P" ?0 ~+ C. Q
  3. print_r($arr);- e% [1 `9 _. A
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
- ^" _. l" G1 B
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()7 c/ a- r. @% A/ D! V  N
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
/ d+ d# @6 `# t9 I2 l% f! [  语法:+ `! b; d1 u( Q6 Z
  bool asort( array &array [, int sort_flags] )! S8 ?/ @) _3 K/ @
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。4 ?+ S( b+ M' T* S) O
  例子:  @7 t* x4 n" |5 r( e
  

  1. $arr = array("b", "a", "c");# o" W; t" Z/ W6 |; Y) s- L  m& {
  2. asort($arr);$ s. E) g, U! ]8 `) P7 g" u) j
  3. print_r($arr);
    / l; k( U3 l2 V& I, [, _; z, q/ i
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
$ [  Y' V! K  E) P! K2 y
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
5 Q8 g; U* x# m! }/ ?: v: t. R
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
5 t; W+ L0 ^: N. C, e  i+ |5 I  本函数会保留原来的键名,因此常用于关联数组。
' a# k* N0 _4 y) l* g* F  语法:8 T' {3 u- g% M  w0 W% S
  bool ksort( array &array [, int sort_flags] )% H" R, M) o/ W7 K& ^: n- ]
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
3 X5 \5 y0 z( O) |# L  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);8 `6 t6 K6 I& O" g* x% a- J$ y
  2.   ksort($arr);4 e+ _3 F0 P6 D$ Z  J
  3.   print_r($arr);
    . j$ X4 q( Z- K( d$ d4 k
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()" @* K$ ~9 _. \/ N1 \% k/ N
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

' E5 s/ `% {( ~2 j6 d9 Q: _# D
( Z; y) u3 c: t6 X
  F0 C' [: J% \/ m9 d





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