cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。$ }4 v  P5 |7 b
  rsort() 函数用于对数组单元从高到低进行排序。+ G& ^+ I6 \. M- r7 P8 D
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
, m$ t/ M" f+ `3 M! g) m3 N7 P  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。/ i  Y9 G# }  n" a- m2 ]& t& B# @" y: Q
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
. N% f* d& [# |0 Z$ }# }  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()! H" R' J  j2 [1 L

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
0 u" h) l. F5 J0 X' v  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
2 s1 U9 Y, J( L) U9 B, z3 R  语法:( h) x% k/ y& ], `5 N1 E8 d: _
  bool sort( array &array [, int sort_flags] )
- U1 Y$ u) K3 N  可选参数 sort_flags 用于改变排序的行为:
  U5 X; `  Z- s# }0 ]6 t  sort_flags 取值 说明
" x1 O( o; t7 M) i& O! c  SORT_REGULAR 正常比较单元
& X! |; T  [7 X; E  SORT_NUMERIC 单元被作为数字来比较9 P0 C" C9 o" t9 u
  SORT_STRING 单元被作为字符串来比较  c# O: b0 W$ a3 }7 N
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");- t% D/ A( H2 _& \7 X! S/ l& l
  2. sort($arr);! p8 V  j% }% m: O/ e* o3 a* X# M: y
  3. print_r($arr);
    , ?3 w3 C7 `! D* `( M2 d6 ?
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()4 B# _+ P4 d4 _6 P, z
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
0 Q; f2 |5 q+ f, w5 `& Q; Y: z
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
' ?" o9 |) _; _6 j" d" r5 D$ ~  语法:
# o  u3 E6 x% f' R; _; \1 Z  bool asort( array &array [, int sort_flags] )1 F( T* l- G/ F) V) \: O0 r/ ]
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
4 [3 m2 L6 N6 a) c  例子:
2 Q, x2 R# E/ _! ^# ]  

  1. $arr = array("b", "a", "c");1 R: m" p! ?4 P' A5 T: g
  2. asort($arr);: w# o! L; e3 q8 a0 l
  3. print_r($arr);) i/ t/ h% ]6 J3 D: U
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
0 K7 T: I9 q% P2 }' Q
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
! F& K0 s& l9 I0 Z7 ~
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。4 }0 `4 d; _+ C* j( F5 T+ x( N
  本函数会保留原来的键名,因此常用于关联数组。: U& U0 L  x4 A% I" d! R5 c
  语法:
' I+ K7 n- M. I3 K) G$ ^8 n" w/ B  bool ksort( array &array [, int sort_flags] )0 ?+ G1 E( K1 ]7 n
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
# l- V; M! w2 l* y  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    : j! s' O8 T5 i9 Z% h2 `" _! E! s
  2.   ksort($arr);& }" T4 z7 H: t5 d( ?& d, z
  3.   print_r($arr);* V; P4 n# P- F# s- v5 M& a3 Y% ]4 q0 A
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
8 {& u1 p( ^% V" j
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

1 b$ W* ~0 {; h% y0 f( r* S; j1 u2 p
7 B) n1 r7 r! z1 _# m

& z- `# C4 Y8 H* L) w1 @+ ^




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