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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
+ c7 b7 g& L- m, z/ C  rsort() 函数用于对数组单元从高到低进行排序。% G) `+ m5 O6 \% y  o, C
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
! E! @& n; T7 p( |  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
: j' o$ T. s& f  ksort() 函数用于对数组单元按照键名从低到高进行排序。
4 s* c' |; R# `) o# Q! ~  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()2 C; L" Z0 s& u6 U. d

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
1 X2 [: Z: ~, }! p/ i/ A" j  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。3 ^) U0 w* Y0 c& V
  语法:
9 V. s- F, E3 N: X  bool sort( array &array [, int sort_flags] ), s* v# F- U; U
  可选参数 sort_flags 用于改变排序的行为:, ?3 J0 D% y6 @
  sort_flags 取值 说明, T) |2 L* q; [4 r4 e
  SORT_REGULAR 正常比较单元; T1 B3 e( h# K
  SORT_NUMERIC 单元被作为数字来比较
! n  ?4 p! J3 R* M8 Q% Z, y" x  SORT_STRING 单元被作为字符串来比较
$ l( [( W+ [" m/ n- H+ |  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    ; n; [" k% |2 v7 |  W
  2. sort($arr);6 O* {! `, u2 M: ^- D' m' I/ m1 n
  3. print_r($arr);& ^) U) |- g3 B
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
& J4 t8 t7 E3 i/ W$ e" ?$ I: ~
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
" j8 B( n% b7 I, W( V
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
" j" k6 L/ }; F  语法:) I) F, P/ P" k2 J' m7 q
  bool asort( array &array [, int sort_flags] )
; k9 m8 L- m# ?( t6 G9 L5 S  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。% {9 D* o- s6 ]. p2 S
  例子:
/ u5 m- ], L2 m8 }7 l/ F  

  1. $arr = array("b", "a", "c");7 P6 b- M& N8 b+ s) b
  2. asort($arr);
    9 `' X: t1 P. r, r$ R2 p* [2 O
  3. print_r($arr);5 a( J8 y( U0 B" [
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()4 @* {# ]$ M7 W, F6 N3 t+ s
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()$ a8 u& b$ m) q
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
1 s2 D$ k9 [5 S% E9 q  本函数会保留原来的键名,因此常用于关联数组。3 @1 a: L3 ~" |! H9 v) B3 O( V1 [
  语法:8 b" n4 Z/ E! ?3 v# H, m
  bool ksort( array &array [, int sort_flags] )
+ D: o7 Z- f; T. L! p  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
) |+ k& n' x, Y& f* P  g! e" D0 I" G8 }  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    ; y, P2 z+ a7 c7 h( e: |/ s. q
  2.   ksort($arr);
    % Z0 O+ z+ k. S; @& _- D# p
  3.   print_r($arr);. a) D; v$ f" d: `$ p& t
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()$ J+ c7 h' J# n
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


: C- e( \6 y3 i3 P5 r: a6 i
' p0 b: u; r# G. r  F1 T
3 {5 O: ?- S% T! V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-7-21 10:30 , Processed in 0.083455 second(s), 19 queries .

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