cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。5 i" X5 j- h# T0 A* Q
  rsort() 函数用于对数组单元从高到低进行排序。
5 N+ N: P% ]5 P0 }9 f( [. P) Y  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
3 U4 y% l% U/ X) f7 j) |3 y& ^  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
/ Q( L) a6 R, Y- n% a4 e5 k0 |  ksort() 函数用于对数组单元按照键名从低到高进行排序。
. {6 x4 o+ @/ ]  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
2 ]* ^3 v& P& ^9 P/ A. c

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。' I; @4 \0 V3 s% Y* l
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
+ O& q. s; ?% {) m4 Z! U* _  语法:9 m3 S0 n7 g( h. i/ s
  bool sort( array &array [, int sort_flags] )
$ o$ `/ O* m8 T0 ^  可选参数 sort_flags 用于改变排序的行为:, @6 G9 ~6 m7 t
  sort_flags 取值 说明
' D0 j# t1 v) k! g2 o5 Y: B/ C5 _  SORT_REGULAR 正常比较单元
0 C8 S6 j! v. k" L0 i* U  SORT_NUMERIC 单元被作为数字来比较8 c/ }, m8 V" E, p6 O& @) t
  SORT_STRING 单元被作为字符串来比较
1 }/ S8 A+ y  y5 X& K& J  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");8 ~! X. o) B0 L- `# ?+ k
  2. sort($arr);+ R! A2 a% R- w% U- E& {' Q
  3. print_r($arr);
    6 l( }! F5 s4 O9 n9 |6 ^
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
# P+ d- l1 K( A( J; L. o& u* {
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()5 V! Q  m1 y" |. g
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
5 V: _  m" ?, R: \  e  H  语法:9 I/ T9 A2 O+ M2 C! e- s
  bool asort( array &array [, int sort_flags] )
- t" Z! ]* k6 Z% ~  |  ^  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。4 b- m- n# ~* S
  例子:6 U2 s" ?+ ^1 r, l; M
  

  1. $arr = array("b", "a", "c");' l* A" ]9 ^( R, K
  2. asort($arr);
    6 m7 I8 {' `( C  @! g4 Z3 t
  3. print_r($arr);
    ; Q# M2 J& {9 ?/ @
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
/ m5 w. ~) F0 {! o. T: `: P
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
# f( {$ s2 ^. e" `- X% ]+ O) b" N8 `
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
: e( z& S4 i4 m+ K  本函数会保留原来的键名,因此常用于关联数组。
8 `- A/ M* |- J2 Y# }  语法:2 b; K: \1 R3 p; |9 O
  bool ksort( array &array [, int sort_flags] ); u% o+ r6 B. V' E! Q) c
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
* r% B/ Y( g" t- P; s8 s3 y  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);* s( ]" Z; D9 n8 n! Y! h& M
  2.   ksort($arr);. U9 u# B9 B8 N
  3.   print_r($arr);
    * \5 r0 o% f9 a; K. Y' n1 Q4 U# i  n- l
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()0 U/ ]$ D9 B! T0 h. i# u
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


8 S; q4 e0 ?+ X- J9 J& Z- @# f- N

8 P& b, e1 _4 m" [; m" \




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