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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。! J8 T9 U* d9 s# T1 c; h9 O) v
  rsort() 函数用于对数组单元从高到低进行排序。
+ q; T  y8 Z2 ^) s  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
& ?; X* Y4 X; O3 L  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。- U! n5 l3 r, p% S1 z! A
  ksort() 函数用于对数组单元按照键名从低到高进行排序。/ J' w6 r( M8 X& H# v0 X
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()- o2 N3 Q" B7 e( n! n# M6 C

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
; @1 b+ r$ ?3 L5 l7 V  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
7 E$ l8 w# y' A" w- k  语法:
0 Z* C9 |8 J6 q5 H2 f  bool sort( array &array [, int sort_flags] )
" D3 V* y. P, E  可选参数 sort_flags 用于改变排序的行为:
0 {/ a. Z  P, ]  sort_flags 取值 说明
  ~- B3 N" p. |% q4 J  SORT_REGULAR 正常比较单元
) R. @& H' F( M& c5 a9 h: ]  SORT_NUMERIC 单元被作为数字来比较8 B# T: d( P. z) [7 n& Z
  SORT_STRING 单元被作为字符串来比较; ?: n& ~- m# d6 R6 i- L
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    / o- ^0 G, o( w# U0 e; A3 T
  2. sort($arr);- o* ]- ~* a2 f4 O8 Y) w! W
  3. print_r($arr);* [' i" y0 `' D" Z! T
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()% U5 o1 W' b, F: R8 S3 ^
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
4 s' s+ d9 l: ?" J3 l8 l0 L4 I
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
2 ]. u7 Z/ f& T2 V: G: G  语法:
3 Q7 Y, F# @/ ~. u, L* \  bool asort( array &array [, int sort_flags] )
/ j0 D) d% _1 X4 h) E0 V  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
' p, U! Z6 u7 n  n. C+ x  H3 l  例子:
0 @7 ]! \( [' k" X5 `  

  1. $arr = array("b", "a", "c");
    . ?& o- i" S% a; i5 |: F& ?
  2. asort($arr);) R, q4 G/ y; @$ Z7 X
  3. print_r($arr);  ~- _) g  `3 e
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
) N& S6 v* `5 p  @6 C
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort(): {, k1 v' f- n6 M0 p' V
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
5 k/ k! Y5 m) j. f, G) v  本函数会保留原来的键名,因此常用于关联数组。- K0 q5 `' O8 F# D: D! t% V
  语法:( N6 {2 e5 q8 {! ^' n, M
  bool ksort( array &array [, int sort_flags] )
4 N6 [& X% B6 O% D# ], v  L  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
0 ^5 N0 n1 @0 W7 `6 R- t  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);' \$ e2 T' ]; w" r8 S
  2.   ksort($arr);1 R, r6 ^2 ?) |' ?4 \3 b
  3.   print_r($arr);
    * O4 g3 y' z# [+ b% m
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
+ P2 G/ }- ]% \; n% D& G1 A
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


0 p) p" y' `7 Q9 v# X* ]: N3 r6 E: D# r, N( ?; @/ @, F9 Z

3 K+ p# K% s- L2 P. h+ }, g3 s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 01:20 , Processed in 0.057436 second(s), 19 queries .

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