cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。- F' z: B$ ?8 a& Q) ?
  rsort() 函数用于对数组单元从高到低进行排序。
1 A3 @; V4 E* G" ]: `  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。4 i3 h, l: K5 R1 W5 g7 Z0 f( }+ p
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
$ w# F. P7 k  v4 I$ L2 s  ksort() 函数用于对数组单元按照键名从低到高进行排序。
# K; W/ E- X7 M) ^( |3 K. u+ P  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()( d+ J4 D8 P" }( i. T  e& y

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。- Y+ h8 i, R% C7 [# V5 b* k
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。1 h2 ~5 N. ?- f7 ]8 d0 }) _0 A
  语法:* ?1 _2 j  `$ F/ s7 u4 \
  bool sort( array &array [, int sort_flags] )
% b2 J: B: L" C0 O  o( K  可选参数 sort_flags 用于改变排序的行为:
4 |$ w; c; ?: H/ A  sort_flags 取值 说明  z( _; B, \6 H2 X: D
  SORT_REGULAR 正常比较单元( k4 U/ S% M: |+ t9 K8 e1 K
  SORT_NUMERIC 单元被作为数字来比较
/ h: b; X6 H/ _1 ?1 l  SORT_STRING 单元被作为字符串来比较- n: x9 W9 j2 J1 I& f
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");: E6 b9 _3 W" m; T1 r4 l
  2. sort($arr);
    5 q* [( r" s% P
  3. print_r($arr);
    2 Z5 l8 v& y, G# R7 q) h! x( U
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()3 {( `1 l5 Z) F" Z3 V
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
( a; S' w: d! I8 y
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。  [4 G0 ]& }9 N# {' B( ^5 A4 p' ?
  语法:
* h1 {4 O) ?% G  bool asort( array &array [, int sort_flags] ), _# w' C* Y, L7 h4 }
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
# Q+ c: U# t+ H' V0 c0 b% e  例子:( Z+ G7 ?$ y- `' C6 z+ B( F8 u
  

  1. $arr = array("b", "a", "c");
      g( X" M( m+ T8 q, m# v' B. b$ }$ q! ]
  2. asort($arr);
    0 S  g8 r/ T/ S) N& S; T9 Q
  3. print_r($arr);6 e2 r' E9 {, i3 U! ^4 B7 Q
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
5 |$ p' q9 x6 p0 ^) B7 \/ L
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()1 m( u0 k! @5 p4 x0 _
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。0 Y7 j& Q+ U8 ]5 r# F
  本函数会保留原来的键名,因此常用于关联数组。7 i$ [2 S+ @: u
  语法:3 B* M+ {" w- P6 ^6 ?+ X& r$ }
  bool ksort( array &array [, int sort_flags] )5 `8 O3 y! U) c- x: x: `4 L0 `
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。( Q# D2 d' H9 ?% I3 M
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);! w+ s4 a7 X7 J0 a
  2.   ksort($arr);& Z' D( C$ F2 |' h
  3.   print_r($arr);
    ' ^  K! ~* \& ]# X: [5 D' t
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()8 [* K- `- h+ k7 x9 T
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


* x: H% i! `& b' T! ^: N  w
  y) e* @4 m; V+ }6 \- G% u$ V
% h/ B# L+ x7 o& G




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