PHP 数组排序方法总结

时间:2022-09-21 21:43:51

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

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

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

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

降序排序: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 
降序排序: 
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 数组排序方法总结的更多相关文章

  1. CSharpGL&lpar;36&rpar;通用的非托管数组排序方法

    CSharpGL(36)通用的非托管数组排序方法 如果OpenGL要渲染半透明物体,一个方法是根据顶点到窗口的距离排序,按照从远到近的顺序依次渲染.所以本篇介绍对 UnmanagedArray< ...

  2. 数组排序方法(join&lpar;&rpar;、reverse&lpar;&rpar;、sort&lpar;&rpar;)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. &ast;&ast;&ast;PHP 数组排序 &plus;php二维数组排序方法(PHP比较器)

    PHP - 一维数组的排序函数 在本节中,我们将学习如下 PHP 数组排序函数: sort() - 以升序对数组排序 rsort() - 以降序对数组排序 asort() - 根据值,以升序对关联数组 ...

  4. php二维数组排序方法(转自http&colon;&sol;&sol;www&period;3lian&period;com&sol;edu&sol;2013&sol;12-26&sol;118882&period;html)

    一维数组排序可以使用asort.ksort等一些方法进程排序,相对来说比较简单.二维数组的排序怎么实现呢?使用array_multisort和usort可以实现 例如像下面的数组:    代码如下: ...

  5. PHP指定字段的多维数组排序方法

    PHP数组排序可以用array_multisort方法实现,但是如果是多维数组,并且我们要指定数组中的某个字段进行排序,那么这就需要我们自己写方法实现了. function sortArrByFiel ...

  6. javascript数组(1) ——sort的工作原理及其他数组排序方法

    一说到数组排序,最直观的想法就是用sort啊! 请问不用使用sort方法还可以使用什么方法进行数组排序? 比如 :  快速排序法.合并排序法.冒泡排序法.选择排序法.插入排序法.布尔排序法.交互排序. ...

  7. php二维数组排序方法&lpar;array&lowbar;multisort usort&rpar;

    一维数组排序可以使用asort.ksort等一些方法进程排序,相对来说比较简单.二维数组的排序怎么实现呢?使用array_multisort和usort可以实现 例如像下面的数组: $users = ...

  8. php二维数组排序方法&lpar;array&lowbar;multisort,usort&rpar;

    一维数组排序可以使用asort.ksort等一些方法进程排序,相对来说比较简单.二维数组的排序怎么实现呢?使用array_multisort和usort可以实现 例如像下面的数组: $users = ...

  9. C&num;数组排序方法

    在C#中常用的数组排序的方法有:选择排序法.冒泡排序法.插入排序法和希尔排序法等. 一.选择排序法 using System;using System.Collections.Generic;usin ...

随机推荐

  1. Mysql字符类型比较

    一. binary和char比较: binary 字节为单位,char字符为单位,字符占几个字节取决于字符集 binary  比较规则基于字节值,char基于字符,即使是_bin的比较规则 范围都0- ...

  2. &lbrack;BZOJ2797&rsqb;&lbrack;Poi2012&rsqb;Squarks

    2797: [Poi2012]Squarks Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 211  Solved: 89[Submit][Status ...

  3. NHibernate 使用CreateSQLQuery进行查询

    涉及的表:Cake{Id ,CakeName } CakeSize{ CakeId,-为外键,对应Cake表的字段Id Size } (其中ISession session = NHibernateH ...

  4. 修改tomcat浏览器地址栏图标

    1.准备一张jpg格式的图片 2.去百度:ico图标在线制作(快速入口:http://www.faviconico.org/) 3.将生成的ico图标复制到tomcat的webapps下的ROOT项目 ...

  5. C&num; 网页图片爬虫的几种技术基础

    一.文件流方式获取网络图片资源 方法1 , ); System.Net.WebRequest webreq = System.Net.WebRequest.Create(url); System.Ne ...

  6. java 一个函数EnumMap返回多个值

    java 一个函数如何返回多个值   在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!! 网上这个问题的解决方法: 1.使用map返回值:这个方法问题是,你并不知道如何返回值 ...

  7. PAT 团体程序设计天梯赛-练习集 L1-008&period; 求整数段和

    给定两个整数A和B,输出从A到B的所有整数以及这些数的和. 输入格式: 输入在一行中给出2个整数A和B,其中-100<=A<=B<=100,其间以空格分隔. 输出格式: 首先顺序输出 ...

  8. Web自动化框架LazyUI使用手册(7)--浏览器常用操作API

      LazyUI框架中,BrowserEmulator类提供了大量的浏览器操作,常用的API列举如下: 1. 基本操作 /** * Open the URL * 打开一个URL * @param ur ...

  9. 团队项目第二阶段个人进展——Day5

    一.昨天工作总结 冲刺第五天,找到了一个专门的提供后端数据服务的网站:leancloud,并学习了相关操作 二.遇到的问题 对leancloud的数据如何请求和响应不懂 三.今日工作规划 深入学习le ...

  10. CentOS7 配置静态 ip

    1. 为 CentOS7 配置静态 ip 1.1 修改文件/etc/sysconfig/network-scripts/ifcfg-ens33 sudo vi /etc/sysconfig/netwo ...