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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
+ H3 J- N* t* z- O# t9 }# y  rsort() 函数用于对数组单元从高到低进行排序。% E2 a" A) i" f
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
3 {8 q) |9 o: B, B% |6 r& i) T/ h  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。( `/ J$ f. d2 ~# i, u( ~
  ksort() 函数用于对数组单元按照键名从低到高进行排序。1 Y& h/ T/ n7 _, J* w8 N
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
0 O/ i5 }0 X' t) ]! e6 X- h

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。1 ]& }0 i$ g- a& S# A; |$ s: C
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
  ~9 B1 F) g& i) a& {$ Q1 j  语法:
- L" x8 J8 j! [6 l- r2 S2 }  bool sort( array &array [, int sort_flags] )7 Q, n9 t9 e: Z5 K
  可选参数 sort_flags 用于改变排序的行为:% G# c* Q( i1 s5 S0 |
  sort_flags 取值 说明
! k( Y9 J3 e. T  S$ u  SORT_REGULAR 正常比较单元! U/ }7 {. J- \( t* C
  SORT_NUMERIC 单元被作为数字来比较
3 S4 I# A) H; ~$ w7 C  SORT_STRING 单元被作为字符串来比较  y; I0 r; |# k5 c3 ]1 Y. d
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");  u2 l; c7 T& V( t9 M" W6 n
  2. sort($arr);
    % d  p2 Q7 [9 o) ^
  3. print_r($arr);
    2 H  f0 [) x0 Q) O8 E' ~0 u5 p
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()0 V% Z6 @* g" m, V
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()/ ^$ b4 Y9 L7 ]# Z2 Z7 W3 }  J
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。1 u3 Z. G1 O' |  e# y. r3 ]2 F. L
  语法:4 i: m) Y2 Z8 b
  bool asort( array &array [, int sort_flags] )2 A# ?% w: S5 E$ O
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
) c4 U; _: I$ H  例子:
* r8 S6 y. X8 }( a- ?1 `% |! ]  

  1. $arr = array("b", "a", "c");
    3 z. W& R3 [  x  W  H; C
  2. asort($arr);! u' [+ @) W. I* [! L$ U" l+ p* o
  3. print_r($arr);
    8 y2 B  A" I$ s+ T9 E7 v+ J& X# Q2 V
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
3 l- f0 K/ Q  j& O$ X5 W' J- \
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()# e2 s# v* d3 s. b" M* {8 W
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
& ?% a8 E3 Y0 b5 P7 j0 G0 P& o9 X% x, q/ a  本函数会保留原来的键名,因此常用于关联数组。
- U9 F& W1 r$ f* n. _: m  语法:
. C7 F+ w4 u( L5 u  bool ksort( array &array [, int sort_flags] )
% s# v. K- `! ?7 o0 o8 p5 ]8 f  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
$ [1 H1 Z" J+ Q- A3 S7 M  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);  G" J; ^9 e$ G% t' Q
  2.   ksort($arr);( g: L+ W2 H; n
  3.   print_r($arr);: L3 Z( q2 z5 t# O& U
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()5 l8 K% G7 m" c2 C/ l
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

) ?2 V) p1 j0 N* G/ Y0 @: _! |
( C9 d" H* O. G# Z
! e4 |. t# i& ]; h4 K  ?" c" U% F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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