cncml手绘网

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

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

     sort() 函数用于对数组单元从低到高进行排序。
% }$ {0 R$ w/ o3 p  rsort() 函数用于对数组单元从高到低进行排序。* ~# _$ r8 x) A" _; B. g
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。5 H1 h3 U5 ?# @& w3 _3 c2 X9 g% {
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。( `: L6 X  K+ n. j7 X7 w3 J
  ksort() 函数用于对数组单元按照键名从低到高进行排序。- G0 K$ c# W% r/ Y; a3 J
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
- q$ P7 N; o0 O- e6 R

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。1 v% Z, {6 j/ {) r0 g3 \
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。% F, a7 U- d% m/ n& ?% H4 z2 [
  语法:9 R( y( n- X% @0 G% T: ^
  bool sort( array &array [, int sort_flags] )
5 h! b2 Y% p+ b, v  G8 S  可选参数 sort_flags 用于改变排序的行为:
, ]! Q* X7 [3 g  L; c) L  sort_flags 取值 说明& u% d; S0 c* N+ K/ H' A. G
  SORT_REGULAR 正常比较单元
! }  u) G8 q) _  SORT_NUMERIC 单元被作为数字来比较
& d4 s$ M7 o' E  SORT_STRING 单元被作为字符串来比较' u0 j$ D) ?  e! g
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");8 O0 s' k, V3 F5 P1 s0 p
  2. sort($arr);
    4 Q$ K2 c4 W# t% k4 q
  3. print_r($arr);
    + ^7 v9 t7 t/ j) R3 g& |* m" O
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
  Y$ o. s7 \7 c
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()7 H0 S, i. m" w6 s
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。+ A' v$ B6 E3 _
  语法:. `) K3 J" E* n9 c
  bool asort( array &array [, int sort_flags] )! c( J1 d4 E2 P- j
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。6 i5 p( N- P, Y- v
  例子:
; D1 ^! v( Q; N" Y% u  

  1. $arr = array("b", "a", "c");
    ! R, O' _. K- m' C
  2. asort($arr);+ u' B+ b0 Z0 }0 W! K2 R6 j7 w
  3. print_r($arr);
    1 S" x- k9 X/ s
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
3 ]. q; A+ Y! a' ]9 I% I
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()1 w+ G7 k5 f" s5 @4 k( s
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
  O( a5 @2 h+ o+ w8 M; ], V  本函数会保留原来的键名,因此常用于关联数组。9 k6 c$ R+ ]! ~, m+ ^9 V$ {
  语法:
2 y! z; _1 e. H" x) R6 f" B' C- i  bool ksort( array &array [, int sort_flags] )
* n( o, X! ]* C8 R! s2 M, _  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。" Q# n  i& Q0 x- n6 V- P
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);6 {* B; P  w9 I+ x
  2.   ksort($arr);% Z( `0 R1 q" B! a( V1 h. F
  3.   print_r($arr);
    , ~4 i6 L: r7 h, R7 S/ n8 e
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
: F/ M6 K/ o, e/ u- P# g+ N0 O6 a
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


6 ^: q' a# K5 x& E
" {' O, P* j, W8 f1 H) P4 b5 p2 y5 s6 I+ j4 R: @4 E7 ]





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