排序的方法多种多样,通常情况下,我们经常使用到的数组排序函数有:sort() 、rsort()、asort() 、arsort()、ksort()、krsort()。下面为大家一一详细介绍。

sort(array,sortingtype);

截图01.jpg

0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)

1 = SORT_NUMERIC - 把每一项作为数字来处理。

2 = SORT_STRING - 把每一项作为字符串来处理。

3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。

5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

定义和用法:

sort() 函数对索引数组进行升序排序。

rsort() 函数对索引数组进行降序排序,其他用法一样。

注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。

如果成功则返回 TRUE,否则返回 FALSE。

提示:请使用 rsort() 函数对索引数组进行降序排序。

sort() 函数用于对数组单元从低到高进行排序。

rsort() 函数用于对数组单元从高到低进行排序。

asort() 函数用于对数组单元从低到高进行排序并保持索引关系。

PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。

arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。

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

ksort() 函数用于对数组单元按照键名从低到高进行排序。

PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。本函数会保留原来的键名,因此常用于关联数组。

krsort() 函数用于对数组单元按照键名从高到低进行排序。

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

使用用户自定义的比较函数对数组 $a 中的元素进行排序:

usort(array,myfunction);
<?phpfunction my_sort($a,$b){   if ($a==$b) return 0;   return ($a<$b)?-1:1;}$a=array(4,2,8,6);usort($a,"my_sort");$arrlength=count($a);for($x=0;$x<$arrlength;$x++)   {      echo $a[$x];      echo "<br>";   }?>
1、使用array_multisort使用这个方法,会比较麻烦些,要将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下:代码如下:<?php$ages = array();foreach ($users as $user) {  $ages[] = $user['age'];}array_multisort($ages, SORT_ASC, $users);执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用:代码如下:array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);2、使用usort使用这个方法最大的好处就是可以自定义一些比较复杂的排序方法。例如按照名称的长度降序排列:代码如下:<?php      usort($users, function($a, $b) {      $al = strlen($a['name']);      $bl = strlen($b['name']);      if ($al == $bl)           return 0;                return ($al > $bl) ? -1 : 1;    });这里使用了匿名函数,如果有需要也可以单独提取出来。其中$a, $b可以理解为$users数组下的元素,可以直接索引name值,并计算长度,而后比较长度就可以了。

更多相关文章

  1. php对象转数组的函数
  2. php数组转json
  3. php数组打乱顺序
  4. PHP 手册中的匿名函数关联用法分析
  5. php十进制转二进制不用函数
  6. PHP中常用的18个字符串函数
  7. 细数PHP中16个高危函数
  8. php判断数组某个值是否存在
  9. php检查数组下标是否存在

随机推荐

  1. Android实现录屏直播(一)ScreenRecorder的
  2. 阿里云OS和Android的"基友“关系
  3. 修改Android Media Scanner的扫描路径
  4. Android 线性布局详解
  5. Android中的Binder详解
  6. 编译Android内核 For nexus 5 以及绕过An
  7. Android 支持不同(本地化、屏幕、版本)设备
  8. android的Instrumentation详解
  9. unity与android的无缝连接
  10. Android:Task概念以及相关