`
purpen
  • 浏览: 785011 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php 排序函数 sort、rsort、asort、arsort、ksort、krsort的区别

PHP 
阅读更多

1,快速创建数组的函数range()

比如range()函数 可 以快速创建从1到9的数字数组:


<?php
$numbers=range(1,9);
echo $numbers[1];
?>


当然,使用 range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z 的字符数组:


<?php
$numbers=range(a,z);
foreach ($numbers as $mychrs)
    echo $mychrs." ";
?>


使 用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。

range()函数还具有第三个 参数 ,该参数的作用是设定步长 ,比如range(1,9,3 ) 创建的数组元素是:1、4、7

 

2,PHP中常规数组的排序

一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排 列,该功能函数为sort() 。比如:


<?php
$people=array('name','sex','nation','birth');
foreach ($people as $mychrs)
    echo $mychrs." ";
sort($people);
echo "<br />---排序后---<br />";
foreach ($people as $mychrs)
    echo $mychrs." ";
?>


升序排序后的数组元素显示 为 birth name nation sex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)

Sort() 函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如:


<?php
echo "---按数字升序排序---<br />";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
    echo $mychrs." ";

echo "<br />---按字符升序排序---<br />";
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
    echo $mychrs." ";
?>


SORT_NUMERIC 和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。

PHP 中除了升序函数以外,还有降序或称反向排列的函数 ,就是rsort()函数 ,比 如:


$num1=range(1,9);
rsort($num1);


这 里其实就相当于range(9,1)

3,PHP中关联数组的排序

PHP除了支持数字 索引数组以外,还支持相关数组。比如如下数组就是一个相关(关联)数组


$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');


使 用sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可使用asort()函数表示,关联数组中最主要的则是可按照关键字(如 xm、xb、mz等)的升序排序,该方法是用函数ksort()函数。


<?php
$peoples=array('xm'=>'name','xb'=>'sex','mz'=>'nation','cs'=>'birth');
foreach ($peoples as $mychrs)
    echo $mychrs." ";

echo "<br />--按元素值升序排列--<br />";
asort($peoples);
foreach ($peoples as $mychrs)
    echo $mychrs." ";

echo "<br />--按关键字升序排列--<br />";
ksort($peoples);
foreach ($peoples as $mychrs)
    echo $mychrs." ";
?>


和 常规数组拥有sort()升序函数的反向排序rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和arsort()函数、 ksort()函数和krsort()函数。

记忆:原型函数是sort(),其中a、k表示关联数组相关必须前置,反向 排序使用r修饰。

4,PHP数组元素随机排序

PHP中使用shuffle() 函数 将数组元素进行随机的重新排序,比如:


<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);

foreach ($fer as $mychrs)
echo $mychrs." ";
?>


每 次都会显示不同的排序组合

5,PHP数组按原顺序反向排序

PHP中可使用array_reverse() 函数 将数组元素按原顺序反向排序。比如:


<?php
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach ($fer as $mychrs)
echo $mychrs." ";

$fer=array_reverse($fer);
echo "<br />--按原顺序反向--<br />";
foreach ($fer as $mychrs)
echo $mychrs." ";
?>


cnbruce cnrose cnjames cnanne
--按原顺序反向--
cnanne cnjames cnrose cnbruce

注 意这里的 $fer=array_reverse($fer); 在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是因为array_reverse()是返 回原数组修改后的副本,如果不需要原有数组,可对原数组重新定义达到覆盖的目的,否则就另外定义数组保存副本,比 如:$fer_bak=array_reverse($fer);

分享到:
评论

相关推荐

    PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析

     asort() 函数用于对数组单元从低到高进行排序并保持索引关系。  arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。  ksort() 函数用于对数组单元按照键名从低到高进行排序。  krsort() 函数用于...

    PHP数组排序之sort、asort与ksort用法实例

    本文实例讲解了PHP数组排序中sort、asort与ksort的用法,供大家参考借鉴之用。具体实例如下所示: &lt;?php $arr = array('d'=&gt;'sdf', 'r'=&gt;'sdf', 'a'=&gt; 'eee'); //sort($arr); // 对数组的值进行重排, 删除之前的...

    常用PHP数组排序函数归纳

     •asort() – 根据值,以升序对关联数组进行排序  •ksort() – 根据键,以升序对关联数组进行排序  •arsort() – 根据值,以降序对关联数组进行排序  •krsort() – 根据键,以降序对关联数组进行排序  ...

    PHP 数组排序

    asort() – 根据关联数组的值,对数组进行升序排列 ksort() – 根据关联数组的键,对数组进行升序排列 arsort() – 根据关联数组的值,对数组进行降序排列 krsort() – 根据关联数组的键,对数组进行降序排列 ...

    php数组函数序列之rsort() - 对数组的元素值进行降序排序

    rsort() 函数对数组的元素按照键值进行逆向排序。与 arsort() 的功能基本相同。注释:该函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。

    php数组函数序列之rsort() – 对数组的元素值进行降序排序

    rsort()定义和用法 rsort() 函数对数组的元素按照键值进行逆向排序。与 arsort() 的功能基本相同。 注释:该函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 如果成功则返回 TRUE,否则...

    PHP 数组排序方法总结 推荐收藏

    asort:对数组进行排序并保持索引关系 arsort:对数组进行逆向排序并保持索引关系 ksort:对数组按照键名排序,保留键名到数据的关联 krsort:对数组按照键名逆向排序,保留键名到数据的关联 natsort:对字母

    php网络开发完全手册

    8.4.1 递增排序——sort 125 8.4.2 递减排序——rsort 125 8.4.3 数组排序——array_multisort 126 8.5 几种数组的应用实例 127 8.5.1 顺序查找 127 8.5.2 二分法查找 128 8.5.3 使用array_search函数进行查找 129 ...

    Python库 | rsort-0.1.2.tar.gz

    python库。 资源全名:rsort-0.1.2.tar.gz

    PHP查找数值数组中不重复最大和最小的10个数的方法

    本文实例讲述了PHP查找数值数组中不...sort($ary);//顺序排序 $min_10=array_slice($ary,0, 10);//取出最小的10个数值 $max_10=array_slice($ary,-10, 10);//取出最大的10个数值 rsort($max_10);//倒序排序最大的10个

    PHP上传图片例子

    //修改日期倒序排序 } for($j=$imgnums*$page; $j&lt;($imgnums*$page+$imgnums)&&$j&lt;$i; ++$j){ echo '&lt;div&gt;'; echo $array[$j].' '; $img_info = getimagesize($path.$array[$j]); echo $img_info[0].' ';...

    求PHP数组最大值,最小值的代码

    复制代码 代码如下: &lt;?php $fruits = array(“155::[removed]:https://www.jb51.net/list/list_114_1.htm”, “1::[removed]:... rsort($fruits,SORT_NUMERIC); print_r($fruits);

    PHP数组操作——获取数组最后一个值的方法

    php开发过程中,可能经常需要对取出的数组要获取数组的最后健或值。在这里软件开发网总结了三个方法,并且跟据他们三个方法在一些情况下如何使用的条件限制进行了说明。...rsort($array);//对数组逆向排

Global site tag (gtag.js) - Google Analytics