您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9585|回复: 0
打印 上一主题 下一主题

[php学习资料] PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

[复制链接]
跳转到指定楼层
楼主
发表于 2018-10-7 02:53:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

     sort() 函数用于对数组单元从低到高进行排序。
' U8 a- D1 j. @  rsort() 函数用于对数组单元从高到低进行排序。
' w. p. c: _3 o  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。3 Y( v# B' b% }: s4 y
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
* C0 o( ~/ b( f  ksort() 函数用于对数组单元按照键名从低到高进行排序。6 @1 `7 ?; n$ m3 v
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
4 m* P9 G/ }" H1 B7 n4 t# j( d0 j

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
8 ]* ~: v7 x$ D4 I  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
, V9 B& C& I" h/ D$ [- j" V  语法:
6 K! s: z5 m$ j, U  bool sort( array &array [, int sort_flags] )+ ]7 o6 q* D2 z9 z( E
  可选参数 sort_flags 用于改变排序的行为:
1 K1 B# D& I  D. K9 b  o& _! q0 Z* O  sort_flags 取值 说明5 b+ S; ~; M0 ~' g0 @1 b. d
  SORT_REGULAR 正常比较单元9 y9 N6 X$ x7 S# q: H5 Y
  SORT_NUMERIC 单元被作为数字来比较
7 K% q$ d" f/ _$ C. ]( R" j  SORT_STRING 单元被作为字符串来比较7 Z/ U' R! E7 Q
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    ! d$ D) L9 P  c. L7 X
  2. sort($arr);
    2 n  D4 \( i' r- v3 }
  3. print_r($arr);0 M8 z7 z& n* A- M* v+ ?
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
3 E! |, ^9 Y. {6 M
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()8 \! g, K: i6 {* F0 o5 t8 g
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。; Y3 ~, {9 {* T$ @+ V" @
  语法:7 m0 h* t* [/ H+ T+ U" R
  bool asort( array &array [, int sort_flags] )' b# x! H5 M/ P9 l
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。. u* ^- r" T) _: f: B6 _; C
  例子:# `% o# o! d$ v1 m8 ~
  

  1. $arr = array("b", "a", "c");
    3 f( q. O$ B- j7 n# J1 v
  2. asort($arr);/ d" l0 |' k, T% B) H6 v* ?
  3. print_r($arr);. W" o3 |; [. T
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort(). _/ V  C+ n  b
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
4 p+ ]9 i. p/ J( n2 H1 G4 `$ D% U
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
) v3 k9 N2 J$ x9 J! D' r  本函数会保留原来的键名,因此常用于关联数组。2 g, t1 F% \$ j' S3 a% G. }
  语法:. r$ f5 k4 Z4 I) W1 h3 }
  bool ksort( array &array [, int sort_flags] )
, J0 u, T$ N! e1 l  ~/ [& i* t: N  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。  k* V* d' q; C5 Y) s
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    % F! c% N0 Y5 h# g2 \  F
  2.   ksort($arr);! l; c* R! G$ D+ D% p: S
  3.   print_r($arr);; w7 y1 d5 P) z* `
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()$ @  N+ C+ i' A
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

7 ]% C& r" b9 [" n9 \

5 ^3 B% q& O; V* y6 g' D
; `" q, e9 T; G9 T0 l; A
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-2 21:27 , Processed in 0.158416 second(s), 19 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!