解析PHP中数组元素升序、降序以及重新排序的函数
2023-06-13 09:15:02 时间
<?php
$numbers=range(1,9);
echo$numbers[1];
?>
当然,使用range(9,1)则创建了9到1的数字数组。同时,range()还可以创建从a到z的字符数组:
<?php
$numbers=range(a,z);
foreach($numbersas$mychrs)
echo$mychrs."";
?>
使用字符数组时注意大小写,比如range(A,z)和range(a,Z)是不一样的。
range()函数还具有第三个参数,该参数的作用是设定步长,比如range(1,9,3)创建的数组元素是:1、4、7
<?php
$people=array("name","sex","nation","birth");
foreach($peopleas$mychrs)
echo$mychrs."";
sort($people);
echo"<br/>---排序后---<br/>";
foreach($peopleas$mychrs)
echo$mychrs."";
?>
升序排序后的数组元素显示为birthnamenationsex,当然,sort()函数是区分字母大小写的(字母从大到小的顺序是:A…Z…a…z)
Sort()函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。比如:
<?php
echo"---按数字升序排序---<br/>";
$num2=array("26","3",);
sort($num2,SORT_NUMERIC);
foreach($num2as$mychrs)
echo$mychrs."";
echo"<br/>---按字符升序排序---<br/>";
$num3=array("26","3");
sort($num3,SORT_STRING);
foreach($num3as$mychrs)
echo$mychrs."";
?>
SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。如果按照数字升序排列是:3,26;但如果按照字符升序排列则是:26,3了。
PHP中除了升序函数以外,还有降序或称反向排列的函数,就是rsort()函数,比如:
$num1=range(1,9);
rsort($num1);
这里其实就相当于range(9,1)
$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($peoplesas$mychrs)
echo$mychrs."";
echo"<br/>--按元素值升序排列--<br/>";
asort($peoples);
foreach($peoplesas$mychrs)
echo$mychrs."";
echo"<br/>--按关键字升序排列--<br/>";
ksort($peoples);
foreach($peoplesas$mychrs)
echo$mychrs."";
?>
和常规数组拥有sort()升序函数的反向排序rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和arsort()函数、ksort()函数和krsort()函数。
<?php
$fer=array("cnbruce","cnrose","cnjames","cnanne");
shuffle($fer);
foreach($feras$mychrs)
echo$mychrs."";
?>
每次都会显示不同的排序组合
<?php
$fer=array("cnbruce","cnrose","cnjames","cnanne");
foreach($feras$mychrs)
echo$mychrs."";
$fer=array_reverse($fer);
echo"<br/>--按原顺序反向--<br/>";
foreach($feras$mychrs)
echo$mychrs."";
?>
--按原顺序反向--
注意这里的$fer=array_reverse($fer);在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是因为array_reverse()是返回原数组修改后的副本,如果不需要原有数组,可对原数组重新定义达到覆盖的目的,否则就另外定义数组保存副本,比如:
相关文章
- 【说站】php数组排序从小到大函数
- 【说站】php数组排序算法
- PHP按特定key进行多维数组排序
- PHP asort():对数组排序(升序),并保持索引关系
- 使用PHP快速实现MySQL查询(php实现mysql查询)
- PHP中的MySQL转义码简介(php转义mysql)
- PHP中使用Redis缓存数据的优势(php使用redis)
- 如何使用MySQL快速查询PHP数组(mysql查询数组php)
- 使用PHP连接远程MSSQL服务器(php连接远程mssql)
- PHP解决MSSQL数据库乱码问题(php解决mssql乱码)
- PHP连接MSSQL实现数据库操作(php用mssql)
- 使用PHP和MySQL研究论文(php mysql 论文)
- 基于Oracle和PHP的新一代组件全面上线(oracle php组件)
- 《PHP编程最快明白》第二讲数字、浮点、布尔型、字符串和数组
- php关于array_multisort多维数组排序的使用说明
- php中显示数组与对象的实现代码
- php归并排序数组交集
- php数组函数序列之rsort()-对数组的元素值进行降序排序
- php中的注释、变量、数组、常量、函数应用介绍
- php二维数组排序与默认自然排序的方法介绍
- 基于PHP遍历数组的方法汇总分析
- php使用array_rand()函数从数组中随机选择一个或多个元素
- php数组中包含中文的排序方法
- PHP二维数组根据某个字段排序的具体实现
- PHP使用array_multisort对多个数组或多维数组进行排序
- PHP数组排序之sort、asort与ksort用法实例