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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

     sort() 函数用于对数组单元从低到高进行排序。% a) I4 K9 S# p* S5 y! p1 A4 e8 s
  rsort() 函数用于对数组单元从高到低进行排序。
: y' _6 i! b) F$ M( |  asort() 函数用于对数组单元从低到高进行排序并保持索引关系。. s- e- m& `  S7 ^% z( p! v+ X
  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。( n* z% p8 f! p: U6 K* ]( [
  ksort() 函数用于对数组单元按照键名从低到高进行排序。$ v3 P8 B; e1 J1 U" e9 z/ m# S
  krsort() 函数用于对数组单元按照键名从高到低进行排序。

  sort()
# Y8 v, ^# K( g/ @+ l' ?, [; ?

  PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。! G9 Q- B5 N( y$ z  @- G8 Z+ l
  注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。4 m5 p' x' t3 g# i+ A: `, H% O5 \  J; m' m
  语法:! f$ [, A" B" k& B' U8 p, e
  bool sort( array &array [, int sort_flags] )$ W6 u: p% t* Y, K8 Y! L
  可选参数 sort_flags 用于改变排序的行为:
, |4 \4 D1 C5 J' g& N& B# f  sort_flags 取值 说明
9 i  q: R% c5 ^3 L0 o  SORT_REGULAR 正常比较单元
# [3 J4 T, s  V2 u2 ]6 w6 }  H/ ]  SORT_NUMERIC 单元被作为数字来比较* ~- Z9 q% y5 [
  SORT_STRING 单元被作为字符串来比较
- X: g9 h, {- B6 c. M4 r2 V' Q  SORT_LOCALE_STRING 根据当前的区域(locale)设置来把单元当作字符串比较

  例子:

  1. $arr = array("b", "a", "c");* c, B7 t6 V: t. N; i
  2. sort($arr);7 C& C! A+ A' n# u% ?
  3. print_r($arr);
    4 Q# Z+ h2 \* |
  4. ?>
复制代码

运行该例子输出:

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

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

  rsort()
- U& K9 Z- O3 F% y
  PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。

  asort()5 p/ X$ l! Z/ W3 W$ X; ]) B
  PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
; O- O1 r. h! B! O  v( ^5 T  语法:
" Z* k4 b& }6 y3 K  bool asort( array &array [, int sort_flags] )2 }5 `3 }" _2 g
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。+ O; P5 L9 C4 ]) g% n# W; Y
  例子:9 N! a+ j9 f% m/ [3 J! s
  

  1. $arr = array("b", "a", "c");
    7 I7 x8 h) F" U  ~3 }* @
  2. asort($arr);
    . Q  `1 L: F' Y: |" u2 h
  3. print_r($arr);# @! g& K6 T1 I8 v: v3 w
  4. ?>
复制代码
运行该例子输出:
  1. Array ( [1] => a [0] => b [2] => c )
复制代码

       arsort()
8 S5 R3 ?$ G6 K
  PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。

  ksort(): F% I1 [9 S7 M
  PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
$ T5 P* Z8 ]7 p8 j' }  本函数会保留原来的键名,因此常用于关联数组。
5 Z5 P. j6 ~: ]  语法:
. }6 k; K6 u9 d/ N% w0 A8 J  bool ksort( array &array [, int sort_flags] ). S+ O) W  J$ e# D2 T5 h3 k
  可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
9 Q6 C7 s1 n. q" Y) \+ T# [2 }  例子:

  1. $arr = array("b"=>18, "a"=>20, "c"=>25);1 }" q7 ]- k* s: E3 @- m  @
  2.   ksort($arr);
    7 ?1 h; J* \8 C: a2 T6 ?
  3.   print_r($arr);
    1 _$ E9 h) d& B1 q
  4.   ?>
复制代码

运行该例子输出:

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

       krsort()# Y" U: T; y+ C4 b1 p
  PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。

4 g7 H, u9 G  a& l9 q! B
2 I' ~2 F3 B6 r0 Y, y4 X0 }
- m4 R$ p% D3 r& K2 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-23 02:36 , Processed in 0.105627 second(s), 19 queries .

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