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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
8 C# K) s7 R9 ?% R; F2 |  rsort() 函数用于对数组单元从高到低进行排序。" H6 e& T, s$ Z+ Y' P0 Z/ F- Y
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。" g- `+ Y; U4 t+ ?0 F
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
% \: b: P3 E5 `& w' |  ksort() 函数用于对数组单元按照键名从低到高进行排序。' h$ r# A5 h) n8 A  ^7 v
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()( t& \& \4 {% d  g; Q

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
3 r( I8 r, d! `0 L; P  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。6 e+ n  m$ E, b7 G! q
  语法:
! l- P/ @/ a1 C6 H7 O7 E5 n  bool sort( array &array [, int sort_flags] )
. c6 l9 a# F0 Z, |8 |# J  可选参数 sort_flags 用于改变排序的行为:; t! u) u  U! _. p3 U( d2 e3 T
  sort_flags 取值 说明
+ S# w4 \3 z. ^- h  SORT_REGULAR 正常比较单元! t9 W8 R4 g! S. G/ a
  SORT_NUMERIC 单元被作为数字来比较
2 g* s4 l# U! o- P- k% e  SORT_STRING 单元被作为字符串来比较
; J. N$ ^$ o5 \& O1 L( V/ u( j% _  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");+ _" |( I2 z6 |* q" G# u) g, J
  2. sort($arr);7 {2 g  j) T, S: U% }/ `
  3. print_r($arr);
    , I6 n3 ^( [3 {! q9 l
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()- L0 D' r7 R/ r- v& H: M
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()7 L/ R0 D0 g) p6 r
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
. V- {# V6 O: u, }0 A1 p  语法:$ t- f; \# k- I6 O8 o1 T( d' q
  bool asort( array &array [, int sort_flags] )! R1 h& ^" f9 y" Q: m& s! k, R
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
$ j) }8 a' H3 r% h" q4 Y& Y  例子:
8 y7 g% Y  i# `* s  

  1. $arr = array("b", "a", "c");
    $ k6 m+ @& m. ?5 X4 {$ d3 F8 w% m! d
  2. asort($arr);
    + Y: M" d' _4 L- Z' ^( O0 Z
  3. print_r($arr);' e2 @7 r$ n: i6 D0 v% u+ n
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
2 L3 a9 C6 V- B$ }8 r0 L
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()! m; k. u- e, x, _4 T! s4 O3 e
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
+ G) j- N3 E8 _$ l& @  本函数会保留原来的键名,因此常用于关联数组。; N% Q. ]2 O+ x$ B- G
  语法:
- C5 B" r9 L4 k/ w0 I- f( O( B  bool ksort( array &array [, int sort_flags] )3 K/ y5 q) z( w/ G' |- }4 R
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。. z( \- q" h. i9 ?) K0 r" B
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);7 w: c6 f* O+ }
  2.   ksort($arr);
      M1 ]# G4 z$ h/ e! |
  3.   print_r($arr);0 r* B  ?( S& Z
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()6 |$ H8 m! C0 }( n, N- w8 e
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

& V0 X- H# D9 o' U' P, q9 H- l
0 B1 W: [4 S3 o7 q* W4 k' |

; n* O  P2 F# c) x6 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:46 , Processed in 0.048602 second(s), 20 queries .

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