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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。+ ~- R' R( K1 }3 {- T0 i  F6 U
  rsort() 函数用于对数组单元从高到低进行排序。
- y' g: b5 d; a6 g  q& e  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
! [% Z+ N" _4 E& k  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。. P% H7 o% ]2 }" P' x! K
  ksort() 函数用于对数组单元按照键名从低到高进行排序。7 [4 y' D5 S# _2 j7 s& L4 |6 s
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
) k! X+ C5 ^6 U% d9 }/ Q+ `; X

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
$ t  K1 b. u2 Y" w, f/ R2 V  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
0 t2 k$ S6 @  ^  语法:
! \; O0 A  w6 c7 K- M  bool sort( array &array [, int sort_flags] )9 W7 H5 }" r( A8 l2 c* S
  可选参数 sort_flags 用于改变排序的行为:
( @$ T( E$ r- |2 i  sort_flags 取值 说明
# }# h4 s% V5 T8 e+ y9 |/ `  SORT_REGULAR 正常比较单元
/ T- _. e6 ]! O1 X- C  SORT_NUMERIC 单元被作为数字来比较
  c" k' X' ~- M  q0 S5 N  SORT_STRING 单元被作为字符串来比较
1 i. z+ T- C* V5 L2 r  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");* C+ Q0 q4 _3 Q2 d2 O" v; k9 f; _
  2. sort($arr);! D& i9 j) z8 @. F5 {! B% a% n9 Z
  3. print_r($arr);
    4 F" h, T% A$ a& L* e; X
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()9 J7 x' V1 Z4 ^/ f
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
! |7 b/ M6 Y$ g
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
- i6 X$ f9 }5 n  |# Z6 z  语法:
+ l+ X2 ^, f& `( k( B  bool asort( array &array [, int sort_flags] )5 x) n" V5 ~0 z  z* l& f7 {
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。0 ]: y1 I* m0 O6 L2 e
  例子:
1 u6 }4 Y; t3 s; O  

  1. $arr = array("b", "a", "c");
    ' \# [; y3 I' ?7 B9 s8 u0 g) o
  2. asort($arr);. e6 ]8 E$ U; w
  3. print_r($arr);, g7 g) `- K. g* T& e4 Z5 j
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort(): s3 v2 L  L3 v8 u4 F! f  y2 t( Z
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
1 t& V' L* m/ a/ E' d6 R
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。- p* C- ]. I1 i6 }
  本函数会保留原来的键名,因此常用于关联数组。9 m& j. B" T3 D- D- A6 A* D
  语法:7 {6 g' A+ W, v- P$ _
  bool ksort( array &array [, int sort_flags] )) m+ h1 _& z' D7 t2 d3 y$ S
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
; ], }5 c8 |! b( o' Z  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    6 q, t+ m6 s" K) g
  2.   ksort($arr);
    ) U% o/ ~3 w" Y- G: \
  3.   print_r($arr);- O4 P4 @! }* r2 ]
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
1 c# f4 x* }' Z& [; d0 }
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

* W% H+ C3 F1 H; t5 l9 @3 ]1 F
1 s* j( V* k  f" n0 }! ?

- ^# Y3 r/ s4 O+ G! J7 \! }8 z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 20:18 , Processed in 0.060216 second(s), 19 queries .

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