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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
& p, K& h7 U. S& U. G  rsort() 函数用于对数组单元从高到低进行排序。: z& E2 d4 z8 O2 M
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。& L1 E" S' g) m8 J
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
& ]3 g" p/ U% x& x- V3 {+ b  ksort() 函数用于对数组单元按照键名从低到高进行排序。2 k6 x# l; ~& M( M5 v  m
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()8 V2 Y, X% d& g. C/ [

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。% y3 i$ F# y. C7 s
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
+ q9 h6 u1 {) O/ B" Y8 ?; C* ]( U  语法:+ s! r& A& {6 a% L
  bool sort( array &array [, int sort_flags] )
% {. W: H) [" z1 D# C5 a0 h  可选参数 sort_flags 用于改变排序的行为:
! o" V) B* v/ I+ L  sort_flags 取值 说明; A+ L! d4 x8 \2 c
  SORT_REGULAR 正常比较单元
5 U! p: K8 e: t: v* S$ P" z+ t- v  SORT_NUMERIC 单元被作为数字来比较
% J1 X! X' P- u9 D  SORT_STRING 单元被作为字符串来比较
' s7 u- X  a2 H; ^  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");( }: ]. I& G2 E! I7 W: G
  2. sort($arr);6 y7 h# X  x3 d! w
  3. print_r($arr);9 m' {( ?. Y$ K) j1 J3 s
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
7 A1 }% [- r5 k4 i% ?0 A& c# c
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()3 f' S/ ~/ }+ k
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。( Y6 ]: X3 ]. {% h
  语法:1 ?& e* W4 d% `8 o% j0 F/ x
  bool asort( array &array [, int sort_flags] )
2 {* y  k" {* H8 y! M, }6 ]  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
. X, z$ j- S2 S: _/ t+ b# ?5 x. {  例子:& J" A* }+ s# x5 ~' ~- c$ }. a
  

  1. $arr = array("b", "a", "c");
    8 h+ x% I9 n, m% k% Z+ P& V0 G
  2. asort($arr);+ k/ j3 z7 x4 _9 |' f
  3. print_r($arr);* `( J2 N, z- c7 o; I3 q  U
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()2 f$ g; V; O% q# q" ~2 v* b
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()9 S2 |, W$ r2 o# F
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
% b7 v6 m( i% y& v  本函数会保留原来的键名,因此常用于关联数组。5 @5 e8 ^) H" q; H
  语法:& ~( {# I, x9 J/ _. O1 u- I
  bool ksort( array &array [, int sort_flags] )8 B4 [- r) t- L& Y
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
, W% M) i% x6 C+ q8 Z# i+ E  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);2 g( f" `( |5 L& Y* x
  2.   ksort($arr);0 z+ @" }& e6 @0 F. y1 A/ w
  3.   print_r($arr);  P. m! H* y& S- U& Q& w  o9 H
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
- `, }( u+ k! D( r/ ~
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


( I" H2 [9 R1 l- l: Z" y' U* Z: ?/ Q' t5 H( y& K

' j4 O3 D0 R/ ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:46 , Processed in 0.051385 second(s), 19 queries .

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