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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。7 G, k/ O' w- w+ |2 V0 @& y5 L0 ~6 c
  rsort() 函数用于对数组单元从高到低进行排序。0 G2 E- ]+ ^2 Y! a" [$ i7 Z: p
  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
& u( V- s' s& Q) e+ j+ v  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。. x+ S9 U, e$ Q( {1 N! Q% O
  ksort() 函数用于对数组单元按照键名从低到高进行排序。
& }5 {, f7 K0 E8 b. K7 Y  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()# E4 ~' B8 g+ X* K# V. U1 H6 B2 \5 l

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。* |& O0 t. _# a' j8 q
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
$ L. g" s- I' P  E+ j  语法:
% [3 F' D3 M1 j  bool sort( array &array [, int sort_flags] )
3 V3 }+ s* o; ~, x- v& ]& d  可选参数 sort_flags 用于改变排序的行为:
  u, Q- x, J, ?3 @  sort_flags 取值 说明& s, |1 T' r6 u3 c; `0 H6 z
  SORT_REGULAR 正常比较单元
' U" U, P# v- f  SORT_NUMERIC 单元被作为数字来比较9 Q* G% }) h& K' ~/ y# s% K6 \
  SORT_STRING 单元被作为字符串来比较; h+ u0 h. b  V* i' V! J9 u
  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");
    7 i8 V( j& l: G  Y6 m7 n4 w
  2. sort($arr);& v* [- X. K$ k7 c2 F0 F
  3. print_r($arr);& H- y& [" B* n9 z
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
( ^! p- @+ J8 V5 a) D; E) J
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()+ U( x( R1 C# p3 U
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
1 N: [& V. b) L$ l& ?8 e. a, i  语法:
" m3 F3 |% Q& c$ Z- K" U1 Q7 P9 y( j  bool asort( array &array [, int sort_flags] ); n; Q1 f! g: s# S$ ^
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
; x4 i5 Q5 z. E% o# d  r  例子:
8 j) J/ g: {2 _$ S  

  1. $arr = array("b", "a", "c");  d" f$ `; Z' y' {- _# F1 h
  2. asort($arr);
    - w( k# `+ G* Q- [# }% b
  3. print_r($arr);1 @# c* I7 w4 `2 l* b0 @) A
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()& \7 e) E3 ?9 K0 n7 k0 |' y/ D& _
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort()# s4 K6 F$ j/ I$ L" E
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
0 L* |5 P+ b/ \; i# y1 D$ p% L  本函数会保留原来的键名,因此常用于关联数组。
% s8 z; l2 M; m* E% I6 e6 ~  语法:, Y0 z% f7 ]8 m9 G& N, p* n9 K
  bool ksort( array &array [, int sort_flags] )* X- T  X( g5 P+ t/ R7 ?
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。/ h8 Z3 D4 ~- k; C
  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);
    ) r" \% p, K8 \. N9 D* I
  2.   ksort($arr);, y- ~3 T9 \/ I5 P3 }& P
  3.   print_r($arr);
    - n) ?* g8 ]+ s7 Z: P4 p9 K
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()
* T. C5 u) ]6 G
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。


0 I: M/ p% P# ~$ y6 \- g: Z
6 L& [* e  D0 J- J( V: Z) x
% {. w; h+ y) N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-19 23:59 , Processed in 0.057125 second(s), 20 queries .

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