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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。* Q" \: c) V, p7 \- Y
  rsort() 函数用于对数组单元从高到低进行排序。$ N9 s* a2 ~5 F; c" Y
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
( |2 j9 O  {- B0 m6 A1 G! e  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
1 }& s: N* \, E# k* ?  ksort() 函数用于对数组单元按照键名从低到高进行排序。
% K  z' {: c% y( d3 k0 Z  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
2 R6 }1 U0 j  ]+ I( v* E

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。3 F3 B& I% t! t# x4 P5 W
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
" X; H1 F, z2 o; T  x  语法:$ `9 `2 q; _* C9 S% V; v
  bool sort( array &array [, int sort_flags] )
( d. w: k& E1 M1 U& C& k  可选参数 sort_flags 用于改变排序的行为:  j# N) [" o+ h, p- d, h4 U% [# n
  sort_flags 取值 说明
1 l5 v. |) ?' o6 x# Q: ]  SORT_REGULAR 正常比较单元
; M' N$ q- ^! b# d' x( c  SORT_NUMERIC 单元被作为数字来比较" u2 D# e" k( F! g# X+ m. d1 A
  SORT_STRING 单元被作为字符串来比较( x$ ]+ s; Y" ^) F
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    : I7 h4 g% T+ ?. ?  ^* o
  2. sort($arr);0 h2 s: w+ t* _" c$ p# V
  3. print_r($arr);' F8 ?) N9 @% R8 j; M
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
7 v6 a9 d; M. A) n
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()8 J% Z" M4 T' y7 s  f
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
6 n  S1 b) I; A5 F/ s  语法:
; m. u( e  B3 l0 y. i( [  bool asort( array &array [, int sort_flags] )
: D4 g. C5 W( c: D+ n0 }7 B  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
2 y3 F  Q8 Z. @. L8 e! v  例子:* f2 {9 \% O0 k) Y& a
  

  1. $arr = array("b", "a", "c");& V% J5 ~$ \. |. z3 N
  2. asort($arr);5 P! }( U; s7 w# m5 c
  3. print_r($arr);
    3 s+ e  B* k7 Z4 i9 R4 K& \: ^. J
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()8 A! l* W) X" t; @
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
* W9 U- l9 @$ @& O1 z' w2 I: S
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。5 [8 M0 m4 t8 V; i7 W7 ?
  本函数会保留原来的键名,因此常用于关联数组。! D% U8 T2 o% E8 y* `
  语法:1 S2 f/ g2 ?/ B5 q! H: |. f* H' M
  bool ksort( array &array [, int sort_flags] )
$ }$ Z! T8 d& m- S1 K5 K  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
1 I9 N0 W! N; z+ d: _: ]8 N( G  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);  Q% ~" r8 F" g3 \7 ^5 U( j) h# T
  2.   ksort($arr);; {& R0 h' E2 n1 _
  3.   print_r($arr);
    # B: m+ s2 R# s9 ?
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
/ ]: f/ Q+ Q6 S1 r" ]7 \
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

! l: d5 L8 y3 ?# J! h, N
6 m- r4 m( @, a1 g9 O: J
0 e" `2 ]' ]- R7 C* K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-4-30 23:03 , Processed in 0.055557 second(s), 22 queries .

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