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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
/ q9 v7 }' {$ D# v( g# g8 d  rsort() 函数用于对数组单元从高到低进行排序。0 n9 S/ ?- y" o& F. }. Z: C/ U, f
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
! ~+ d2 z! w: o2 L) q5 I$ R* d0 [  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
' P" b1 B% @: V( G4 @  ksort() 函数用于对数组单元按照键名从低到高进行排序。
: R) E4 G$ w- h  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()8 Z/ I2 o6 W4 y/ [- L3 _3 i; C; L

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
, a4 @0 q9 U* I6 ^  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
" q8 g1 n2 u0 x( S  语法:, B: l# t3 h1 X
  bool sort( array &array [, int sort_flags] )) H! F- h& i+ b$ }' k# A9 V
  可选参数 sort_flags 用于改变排序的行为:- v# Y; a' c$ ?6 j: ?9 a
  sort_flags 取值 说明
8 S8 f, V  z/ A+ Z0 _; G  SORT_REGULAR 正常比较单元
! n0 o9 V& s# ~5 O* m( w  SORT_NUMERIC 单元被作为数字来比较: g6 q! L. _* j4 f  g
  SORT_STRING 单元被作为字符串来比较( X. B+ g6 _4 A5 {+ Z# W. r
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");% f0 Q" g4 I# c  g' p3 H+ j
  2. sort($arr);8 j4 n) V$ |0 d# R) {, [
  3. print_r($arr);
    8 k9 x- f1 O  ~8 t: u
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
! c8 ~6 V# e7 _9 I2 J' D! `
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort(), t0 s$ v' v& L/ t& s0 Q1 i
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。$ |3 J8 C& Q% \6 b- a2 ^
  语法:; ]4 W4 Y0 k4 J$ g) V; ?$ B
  bool asort( array &array [, int sort_flags] )
3 H; @- b& y' e$ \5 c  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
0 O. [  `$ x' Z2 n  例子:
( q3 L2 H; G, _5 e- P  

  1. $arr = array("b", "a", "c");; \1 p+ ]" k1 F& \6 T- c; G
  2. asort($arr);
    & _/ D9 i4 }4 g& ]. H
  3. print_r($arr);
    + x7 a9 X. o* q  \' Y
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
2 p: |$ I# _# i1 G
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()
. m' X- z0 h' `9 g* O
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。7 R. [8 D4 ?* ?8 {' K
  本函数会保留原来的键名,因此常用于关联数组。. Y+ Q* A, {3 x$ H
  语法:
+ v* |$ \" z; @4 M- y$ _  bool ksort( array &array [, int sort_flags] )6 y2 i5 L; h+ M( Y, M2 D! Z
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
' E( j0 S) z5 b# l2 v3 z7 j  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    8 Z7 J% ]0 x! j2 p
  2.   ksort($arr);
    3 q. f& m7 O# P! G3 O, c# n# F* K
  3.   print_r($arr);
    0 d/ q* F: ~1 z2 u
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()4 o: T# @  F& x9 [
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

9 S  @6 O5 q. I0 Y! t3 J" a

4 W- Y/ k" T1 ^/ U) j; x% u9 ^1 q. i5 f3 P; g# C) K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-4 12:57 , Processed in 0.052210 second(s), 21 queries .

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