侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

php  /  管理员 发布于 7年前   172

随着PHP的快速发展,用它的人越来越多,在PHP数组学习摘录部分了解到最基本的PHP数组的建立和数组元素的显示。需要深入学习下PHP数组的相关操作。首先接触的就是PHP数组排序、降序的排序问题。

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″;

复制代码 代码如下:

$a = array(4,"37",3,100,0,-5);
sort($a);
for ($i=0; $i<6; ++$i){
echo $a[$i]." ";
}
echo "
";
sort($a,SORT_STRING);
for ($i=0; $i<6; ++$i){
echo $a[$i]." ";
}
echo "
";
?>

输出结果:

-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函数。


复制代码 代码如下:

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

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

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


输出结果:

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的数字数组:

复制代码 代码如下:

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

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

$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()。比如:

复制代码 代码如下:

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

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

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

复制代码 代码如下:

echo "---按数字升序排序---
";
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
echo $mychrs." ";
echo "
---按字符升序排序---
";
$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中二维数组排序问题方法详解
  • array_multisort实现PHP多维数组排序示例讲解
  • php简单实现多维数组排序的方法
  • PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
  • php不用内置函数对数组排序的两个算法代码
  • php 数组排序 array_multisort与uasort的区别
  • php关于array_multisort多维数组排序的使用说明
  • PHP数组排序之sort、asort与ksort用法实例
  • PHP 简单数组排序实现代码
  • PHP常见数组排序方法小结


  • 上一条:
    PHP 反向排序和随机排序代码
    下一条:
    超级好用的一个php上传图片类(随机名,缩略图,加水印)
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客