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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。# k6 N, [. H5 Y9 ~4 z7 T" r* a6 ^
  rsort() 函数用于对数组单元从高到低进行排序。7 p/ ^& |# z7 S- U) r% _
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
' R4 ?. N, f3 @  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。+ |1 g) Q+ ~3 g" Q
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
  Z% Y; ~7 m( I  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
5 k8 P: K" q9 Y/ {$ \- o# e5 f

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
5 f) \0 `# R' P; C  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
  L0 E, p9 y2 X% D( g  语法:) d# g9 q, L; A) j. t' u& N
  bool sort( array &array [, int sort_flags] )1 P; o1 G1 k* z2 C7 X& e
  可选参数 sort_flags 用于改变排序的行为:
* O: I( Z  o. w& F0 C0 M; B  sort_flags 取值 说明- x9 c, V. b8 D
  SORT_REGULAR 正常比较单元
. ?7 b* \! c% s! h" E( |  SORT_NUMERIC 单元被作为数字来比较
+ K2 A5 P0 j- l  SORT_STRING 单元被作为字符串来比较. d4 H1 X1 x- X& E( y" _9 m
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");7 a6 b& q% B9 T+ Z! J1 I# d# @: e
  2. sort($arr);
    : M3 J) h8 H3 y" d- P8 T- a
  3. print_r($arr);
    0 c. e% |" ]9 W$ ~) c1 K/ ]
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
: X. Q5 f* u6 _& s3 y+ w
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()( ?6 F  L! e/ A2 q
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。% ?" y8 ^' {8 l/ z6 m& L0 a
  语法:
1 Y% i# \4 ?  A8 V, t2 T/ ^: b  bool asort( array &array [, int sort_flags] )
# |- {* b( }+ Q; U+ y  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。# w' I% D/ P# b4 w- M& L! F6 k7 M
  例子:
* d/ K# C2 e$ J  

  1. $arr = array("b", "a", "c");
    / p! z7 B- }5 w+ ~; L7 b% D9 u9 ?
  2. asort($arr);
    . X& U% }- x# T  X. |/ ]
  3. print_r($arr);( T" V& z1 Z7 z) G, S
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()! [4 n8 p- l: H+ l7 e
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
+ v0 u8 ]8 F* h2 N. o$ m" i$ @2 U  _
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
! [8 E. Q4 F) ~  本函数会保留原来的键名,因此常用于关联数组。  Y$ w: m& ?0 R5 t! Q5 ?
  语法:
8 P; C4 h  d, ~* [( Z7 B5 j  w  bool ksort( array &array [, int sort_flags] )
! V/ o  N1 D% [/ a. X  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
- v/ ?7 [2 h* E& J+ G  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    ; Z" _# I3 n$ E3 b2 H0 R
  2.   ksort($arr);& P- M: s8 Q1 m3 w; U  s$ A) R
  3.   print_r($arr);
    ' t( w; Z% d) \
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
. h4 [2 j! K& p% H2 ?, Y
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


* o( W5 o) |" U# y. C$ E
/ w$ ^' U7 T1 k# V/ P# y
" h0 R9 P, r6 n4 i9 Z/ N, q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:51 , Processed in 0.050549 second(s), 19 queries .

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