cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。
% l$ x0 y9 O. f3 Z# k0 P' H, v  rsort() 函数用于对数组单元从高到低进行排序。
: }  l2 z, L+ T  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。+ S6 n3 b# D8 `% s& c" p
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
* W7 F( S2 m2 g6 q, k3 k  ksort() 函数用于对数组单元按照键名从低到高进行排序。' p7 l( b! h6 J  U1 T4 p2 b* K1 V3 [
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
7 f+ {* t8 G1 ~( o

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。7 R3 h5 }4 ~  D6 o) d  R' U
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
7 W4 P- r! G& s# T6 G  语法:0 l" B3 L& c! D! \) _
  bool sort( array &array [, int sort_flags] )5 d6 g/ \  h( {% w' p
  可选参数 sort_flags 用于改变排序的行为:
/ B( o! t: r7 T( i8 J  sort_flags 取值 说明) x' H& D/ z% b
  SORT_REGULAR 正常比较单元
5 y$ u" y7 g5 |0 p6 f- p  SORT_NUMERIC 单元被作为数字来比较
7 d) d- F: Y% n8 J) }6 I8 u  SORT_STRING 单元被作为字符串来比较
& I6 ^% \- i. T) Q  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");4 E" s2 ^5 B4 e+ n" Q* x
  2. sort($arr);
    1 f% K4 P7 t1 `
  3. print_r($arr);
    6 e& w7 f1 h' h) ^; b: K2 U
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
' ?* N/ j; x/ V% D
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
. h6 Z+ e0 F  a( |# j  z; B5 ~
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
" D- j- R6 a% r  语法:' e" l% s; s0 W5 p- J
  bool asort( array &array [, int sort_flags] )
. {# K8 ]  J, O3 E  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
0 `* `5 `. ~/ `# S6 X$ {  例子:
! p$ h% y& G  E5 |5 r: B' T  

  1. $arr = array("b", "a", "c");: p2 z, _9 H* {5 F" e% J$ E9 `6 ^
  2. asort($arr);
    # {" O8 @4 B3 i  C' _
  3. print_r($arr);
    ; }5 \, K: i$ d& u$ \
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
+ r- V9 i0 [# p$ Z% ~' u- ]" m3 X
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
" }9 A* b0 K: s
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
0 E; S+ F# j- T  本函数会保留原来的键名,因此常用于关联数组。
, m7 p& f& z3 z, p  语法:$ y/ G- `  M$ t5 i% o
  bool ksort( array &array [, int sort_flags] )
) H, X0 S( W! @  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
9 t0 o; U7 l+ ~6 A& b8 ?6 K5 A. e  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    * B' |9 N, N; q4 P2 M3 d
  2.   ksort($arr);7 U; o! U4 X' N# I! [
  3.   print_r($arr);
    . S5 `" m: P( N
  4.   ?>
复制代码

运行该例子输出:

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

       krsort(), D, J& N& C% ^/ V
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

- @% h- {: A1 ~; e! B3 _. W4 O9 K
6 m# u. C' L4 x" T3 O& P
6 N7 e4 g, |0 K4 Z  u9 w1 J4 s





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