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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
4 c( c& ~* V  G4 }+ W% I5 V  rsort() 函数用于对数组单元从高到低进行排序。; w5 Y; A, \# L
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
+ Y2 ?; _- @& Q. F: T  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。+ O4 u8 p/ q) [" n1 A7 e; _
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
" F0 E: s4 f( F  F) I* p- W5 Q  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()2 E: f: {* ~) v0 m4 O& @

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。5 J  N  [3 G. l
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
. I( n8 C' T2 o  语法:
4 h4 ?; p2 L$ X$ r7 T1 }# B% L  bool sort( array &array [, int sort_flags] )5 Q8 J& ]2 n0 x% q  Y4 k
  可选参数 sort_flags 用于改变排序的行为:9 @  E1 a+ b( x& X
  sort_flags 取值 说明7 P! i6 |, A. u1 @* g* M
  SORT_REGULAR 正常比较单元7 G5 ^1 H2 y! }; S& m
  SORT_NUMERIC 单元被作为数字来比较
9 Y+ m5 Z) G/ {9 f1 i  SORT_STRING 单元被作为字符串来比较
7 O5 l) M& ~% Y' c; c- I  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    % B; Y4 g2 s" g
  2. sort($arr);0 b3 L) Y- U2 ^( w4 u+ z& m. i
  3. print_r($arr);, |  N) ]0 c2 i
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()' v. c1 M: h5 ]: Q! i5 z1 [1 D
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
: ~* z" e$ J) b6 |9 D: H% F3 ~1 F
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。; |7 h  f% Q% @  Q. f
  语法:
8 H2 i% ~) B0 {/ _' G0 z  bool asort( array &array [, int sort_flags] )
5 B5 A  c1 [$ K: ]  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。4 y% h# U; f1 F5 o6 a% v% v# q
  例子:6 C6 F, Z$ ?  K* Z$ a
  

  1. $arr = array("b", "a", "c");3 J* A# @4 v) C
  2. asort($arr);
    + a0 m& q2 C3 j6 j6 n5 U8 ]
  3. print_r($arr);
    3 E- r2 c7 v" ]7 G& O
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort(): m) [6 ]$ c8 K. }6 W: L
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()( l. Z' q* A) ]1 d
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。4 Y9 u. s5 g2 t. W* }1 R
  本函数会保留原来的键名,因此常用于关联数组。" m. I4 V" u* @8 c0 o, C
  语法:9 Z" g) y5 Q: W3 e" P* ?6 ~
  bool ksort( array &array [, int sort_flags] )
. z2 F" a1 J, {  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。8 {* ]% C+ d) K2 N- |3 A
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    . X% M/ w# b5 ^* \+ O! l' V- ?
  2.   ksort($arr);
    6 ?1 X, b& w+ g7 _
  3.   print_r($arr);
    # O' ]  B- A" [3 z7 B5 \+ U9 u1 s% C
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
3 S9 [' k: c3 k
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


& M1 G, v( i: x/ c7 d3 T4 `
) }8 }8 r( `& M8 g1 k" w% X& I* {& n& X1 U9 x( n( |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-20 00:34 , Processed in 0.058174 second(s), 20 queries .

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