当前位置:  编程技术>php

PHP数组排序方法总结(收藏)

    来源: 互联网  发布时间:2014-10-13

本节内容:
快速创建数组的函数range()和常见PHP数组排序的方法。
 
本文主要介绍php数组排序、降序的排序相关的内容。
 

sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。
asort:对数组进行排序并保持索引关系
arsort:对数组进行逆向排序并保持索引关系

ksort:对数组按照键名排序,保留键名到数据的关联
krsort:对数组按照键名逆向排序,保留键名到数据的关联

natsort:对字母数字字符串进行排序并保持原有键/值的关联
natcasesort:同natsort排序算法,但不区分大小写字母排序

1,PHP 数组排序(sort)
数字索引数组排序:
函数:sort(array, [sort type])
说明:sort()函数按升序对指定数组(第一个参数)进行排序。
sort函数第二参数作用为指定排序类型,是可选参数,可能的值为:
SORT_REGULAR: 默认值,不改变类型进行排序;
SORT_NUMERIC: 把值作为数字进行排序;
SORT_STRING: 把值作为字符串进行排序;

例子,数组中有4和”37″,按数字排序,4小于”37″;按字符串排序,4大于”37″;
 

代码示例:
<?php
$a = array(4,"37",3,100,0,-5);
sort($a);
for ($i=0; $i<6; ++$i){
echo $a[$i]." ";
}
echo "<br />";
sort($a,SORT_STRING);
for ($i=0; $i<6; ++$i){
echo $a[$i]." ";
}
echo "<br />";
?>

输出结果:
-5 0 3 4 37 100
-5 0 100 3 37 4

2,降序排序:rsort(array, [sort type])
参数用法与sort函数相同。

关联数组排序:
函数:asort(array, [sort type])
说明:根据关联数组的元素值进行升序排序。参数使用见上面的sort函数。

函数:ksort(array, [sort type])
说明:根据关联数组的关键字进行升序排序。参数使用见上面的sort函数。

例子:
 

代码示例:

<?php
$a = array(
"good" => "bad",
"right" => "wrong",
"boy" => "girl");

echo "value sort<br />";
asort($a);
foreach($a as $key => $value){
echo "$key : $value<br />";
}

echo "<br />key sort<br />";
ksort($a);
foreach($a as $key => $value){
echo "$key : $value<br />";
}
?>

输出结果:
value sort
good : bad
boy : girl
right : wrong

key sort
boy : girl
good : bad
right : wrong

3,降序排序:
arsort(array, [sort type]) 与 asort对应
krsort(array, [sort type]) 与 ksort对应

快速创建数组的函数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。
常见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数组排序升序的规则是用来比较数字还是字符串的。
例如:
 

代码示例:
<?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)。

>>> 更多内容,请查看 php数组排序方法大全 <<<


    
相关技术文章:
    ▪php数组排序方法大全(脚本学堂整理奉献)

     我们知道,在php编程中,有关php数组排序的内容,一直是很重要的一个知识点。 本节为大家整理了些php中数组排序的文章,其中包含php数组排序函数的用法,php中一维、二维、多维数组的排序方法与实例。 熟读并掌握了本文介绍的这些方法与技巧,相信您对php 排序相关的编程与问题,将都不在话下了。 内容共分为三部分,如下: 1,php数组排序函数 php数组排序的几个函数(附实例) php array_multisort多维数组排序的例子 php 数组函数 array_map、array_multisort多维数组排序实例 php 数组排序函数 array_multisort与uasort的区别 ......


    ▪php数组排序的几个函数(附实例)

     本节内容: php数组排序函数示例。 PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序。 一,简单排序 首先,最简单的情况:将一个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。 PHP的sort()函数实现了这个功能。 例1:   代码示例: <?php $data = array(5,8,1,7,2); sort($data); print_r($data); ?> 输出结果: Array ([0] => 1 [1] => 2 [2] => 5......


    ▪php二维数组排序(实例)

     本节内容: php中二维数组排序 一例php二维数组排序的函数,可以实现类似 MySQL 的 ORDER BY 效果,当数组不是从数据库取得时会有特殊应用。 例子:   代码示例: <?php // 说明:PHP中二维数组的排序方法 // 编辑:www.   /**  * sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)  * @param  array   $ArrayData   the array to sort.  * @param  string  $KeyName1    the first item to sort by.  * @param  string  $SortOrder1  the order to sort by("SORT_ASC"|"SORT_DESC")  * @param  string  $SortType1   the sort type("SORT_......


 
最新技术文章:
    ▪PHP函数microtime()时间戳的定义与用法

     本节内容: PHP函数microtime() 定义和用法 microtime()返回当前 Unix 时间戳和微秒数。 microtime()语法 microtime(get_as_float) microtime()参数与描述 get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。 说明 microtime()仅在支持 gettimeofday() 系统调用的操作系统下可用。 如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。 例子:   代码示例......


    ▪PHP单一入口之apache配置内容

     本节内容: PHP单一入口 在apache配置文件httpd.conf加入,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的“#”号。 内容:   代码示例: DocumentRoot / <Directory />     Options Indexes FollowSymLinks MultiViews     AllowOverride None     #AllowOverride All <IfModule mod_rewrite.c>   RewriteEngine on   RewriteBase /   #不显示index.php   RewriteCond %{REQUEST_FILENAME} !-d   RewriteCond %{REQUEST_FILENAME} !-f   RewriteRule  ^/?(.*)$ /index.php?%{QUERY_STRING} [L,NC]   #RewriteRule ^(.*)$ index.php?$1 [QSA,L]  </IfM......


    ▪PHP数组排序方法总结(收藏)

     本节内容: 快速创建数组的函数range()和常见PHP数组排序的方法。   本文主要介绍php数组排序、降序的排序相关的内容。   sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。 asort:对数组进行排序并保持索引关系 arsort:对数组进行逆向排序并保持索引关系 ksort:对数组按照键名排序,保留键名到数据的关联 krsort:对数组按照键名逆向排序,保留键名到数据的关联 natsort:对字母数字......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2015,169IT.COM,站长邮箱:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号