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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。
+ J+ ]6 ^5 [3 R2 H- j9 G  rsort() 函数用于对数组单元从高到低进行排序。( m. t, `+ Q/ L+ ^- `9 j  n
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。+ [) A( f' r8 L* j: G; [% ?
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。" R: z3 E$ |0 p5 V- v
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
* \' y' e: w+ _3 G7 `# x  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
4 J% m, e4 U+ m3 V: A3 X

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。$ ~  L, r7 t4 e! z/ w7 e
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
, _( ^5 {/ X4 p% e9 ~$ f  语法:' b* v; d2 b# Z! o9 t3 N/ u
  bool sort( array &array [, int sort_flags] )- Z" u, H/ {4 \- _. M, o
  可选参数 sort_flags 用于改变排序的行为:
* k5 ~0 Z# f+ |  sort_flags 取值 说明; l% e8 h. H: a* [
  SORT_REGULAR 正常比较单元
; T6 W0 e" T3 l3 b0 u! S& _  SORT_NUMERIC 单元被作为数字来比较( i- A9 ^2 g* s# \7 Z% S2 g% Y4 u
  SORT_STRING 单元被作为字符串来比较! F) h0 g) @, w% g0 c5 d0 f$ ~
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");* O) g1 Z- [" w! `
  2. sort($arr);0 x  Y9 `. K% t$ ]7 m
  3. print_r($arr);
    * C+ U& \. j+ N( A% A
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
7 s' T. P/ z$ D& {
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()
. }- |! G$ Z( ?% m- |* o" {" k
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
0 n4 a' h7 f  n, \  语法:
4 r) [$ d4 N: K* d' U  bool asort( array &array [, int sort_flags] )" e/ O; a: m7 ~4 s8 f* K
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
" s2 [2 `3 g: u% y* {$ u  例子:+ i' i/ g; {2 e+ x
  

  1. $arr = array("b", "a", "c");2 _# l! }# Z. t0 F3 G4 H8 v
  2. asort($arr);/ b4 @8 C+ D2 c& e# F
  3. print_r($arr);
    . W3 f$ }! P5 `( [
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort(). |, I  m# R8 g# q* w& r" k6 @
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort(); r+ [% b$ |, ^7 L! J- F: c/ k
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。, A% y. Z) n+ q
  本函数会保留原来的键名,因此常用于关联数组。: C! p8 P; y( K* W$ f- S) K$ m
  语法:! }, Z7 J: X2 M9 g7 ~( x4 N
  bool ksort( array &array [, int sort_flags] )
% ?0 D: {1 V) c9 {  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。( l$ @! }! n3 R1 z1 i9 D- G- o2 i
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    ; V. Z( _. Z' F- D4 E# g) e
  2.   ksort($arr);
    4 s: m8 j6 }; t- E0 O- v
  3.   print_r($arr);
    - E+ U! f9 f% B+ \* H5 U, d; E
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()1 Y) g% {0 f* _/ \- H
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


4 I- i" E! U9 E3 C+ {9 s
! ~# O- p! F6 e1 P3 S& I7 D. `
  s7 o( Z4 J4 X( q! ]5 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 17:22 , Processed in 0.054613 second(s), 20 queries .

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