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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。2 g. y+ D7 U; D9 m
  rsort() 函数用于对数组单元从高到低进行排序。# P0 c+ I2 d* M* P
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。2 \* ]- u- O& `# x2 E7 M  w
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。0 S  x" y$ q3 \7 D5 F
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
7 r3 C" ]6 F' y/ d. g8 ?, b) T  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
! M5 m& Y! T& D* i

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。) d6 N( E- X; _9 c. G/ I4 D
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。% f+ O. q1 }" W. Q, [2 ~; V7 U
  语法:9 W6 V) J2 q- t
  bool sort( array &array [, int sort_flags] )
* x" R: N; U# @3 I( N  可选参数 sort_flags 用于改变排序的行为:( x1 ~8 ?5 H1 K7 r  X5 E" y& r- m
  sort_flags 取值 说明
- \2 J  v! e. c  {9 L  SORT_REGULAR 正常比较单元) |1 Z* S  N% G+ g) Q- \: x! m7 T
  SORT_NUMERIC 单元被作为数字来比较/ B1 m" n3 n0 ?! B! Z* [/ m
  SORT_STRING 单元被作为字符串来比较: w, X8 D4 p5 w
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");) g, k7 W( Z  M1 N; p+ x
  2. sort($arr);! Y& N$ `8 i7 `  L: ~% h) R
  3. print_r($arr);
    5 k6 a9 a: _. |' S
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()- X2 d, y* g: D2 o
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()0 m. w7 L: x5 m, j5 R
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
, ~* Q! \; `! f: r  语法:- j6 [  a3 o# O$ `5 x
  bool asort( array &array [, int sort_flags] )) q" E2 p# H7 I9 [4 Z
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。# U" ]$ c$ E# g$ R: r8 h$ a# r, L1 f
  例子:7 ^% g* q9 B) G
  

  1. $arr = array("b", "a", "c");( Z/ L4 _/ \& G( A' B4 m% |+ g- u
  2. asort($arr);
    5 b$ E" N3 @, K: W
  3. print_r($arr);
    3 f. U" C1 L" C
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
6 Q- |) T% k; h9 N( l+ j( x- p
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()' M6 w2 @5 ?$ R% c  s/ d1 }/ S
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
* b5 j( ]* Z& Q, ~! b2 n  本函数会保留原来的键名,因此常用于关联数组。8 g/ l/ o. o* H: u7 R. Q, _+ p# ]
  语法:
2 n! r5 b. ]4 q/ n" b  bool ksort( array &array [, int sort_flags] )
1 I$ x0 s% z& y2 ]. ?& P% C, s  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
* p$ P, \# v- J+ B  ^  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    $ o* T9 J. f! J# ]9 H
  2.   ksort($arr);
    2 r8 |" v6 l9 k
  3.   print_r($arr);4 @( T' z( {+ U% z
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
& S9 B' a+ [* B" @' V9 Z
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


& y# j9 }) ^9 m* K( q, V# Y8 H4 G) V' Z: T# G9 ?% I: }: E9 E8 m
. v# f; i* `/ r2 y7 o2 J% W( R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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