首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
字符串的单引号和双引号
字符串的连接符
手动和自动转义字符串中的字符
计算字符串的长度
字符串单词统计
清理字符串中的空格
字符串的切分与组合
字符串子串的截取
字符串子串替换
字符串查找
字符串大小写转换
字符串处理机制的修改
正则表达式概述
正则表达式的语法规则
使用正则表达式替换字符串子串
使用正则表达式切分字符串
实战演练——酒店系统在线订房表
PHP数组概述
构造一维数组
构造多维数组
遍历数组
数组排序
字符串与数组的转换
向数组中添加和删除元素
查询数组中的指定元素
统计数组元素个数
删除数组中的重复元素
调换数组中的键值和元素值
PHP 8的新变化1—自动创建元素的顺序的改变
PHP 8的新变化2—list()函数修改数组的改变
PHP 8的新变化3—foreach()函数修改数组的改变
实战演练—序列化和反序列化
当前位置:
首页>>
技术小册>>
PHP8入门与项目实战(3)
小册名称:PHP8入门与项目实战(3)
本节将讲解如何对一维和多维数组进行排序操作。 6.6.1 一维数组排序 下面通过实例展示如何对数组进行排序,具体操作步骤如下。 【例6.6】 ```php <?php $roomtypes = array( '单床房','标准间','三床房','VIP套房'); $prices_per_day = array('单床房'=> 298,'标准间'=> 268,'三床房'=> 198,'VIP套房'=> 368); sort($roomtypes); foreach ($roomtypes as $key => $value){ echo $key.":".$value."<br/>"; } asort($prices_per_day); foreach ($prices_per_day as $key => $value){ echo $key.":".$value." 每日。<br/>"; } ksort($prices_per_day); foreach ($prices_per_day as $key => $value){ echo $key.":".$value." 每天。<br/>"; } rsort($roomtypes); foreach ($roomtypes as $key => $value){ echo $key.":".$value."<br/>"; } arsort($prices_per_day); foreach ($prices_per_day as $key => $value){ echo $key.":".$value." 每日。<br/>"; } krsort($prices_per_day); foreach ($prices_per_day as $key => $value){ echo $key.":".$value." 每天。<br/>"; } ?> ``` 运行结果如图6-8所示。 ![](/uploads/images/20231208/95891457912f44584f64a754662ae03d.png) 【案例分析】 (1)这段代码用于展示数组排序的功能涉及sort()、asort()、ksort()和rsort()、arsort()、krsort()等函数。其中,sort()是默认排序。asort()根据数组元素值的升序排序。ksort()根据数组元素的键值,也就是关键字的升序排序。 (2)rsort()、arsort()和krsort()等函数则正好与所对应的升序排序相反,都为降序排序。 6.6.2 多维数组排序 对于一维数组,通过sort()等一系列排序函数就可以对它进行排序。而对于多维数组,排序就没有那么简单了。首先需要设定一个排序方法,也就是建立一个排序函数。再通过usort()函数对特定数组采用特定排序方法进行排序。下面的案例介绍多维数组排序,具体步骤如下。 【例6.7】 ![](/uploads/images/20231208/66841ff550193ee54b7683416f015cf4.png) 运行结果如图6-9所示。 ![](/uploads/images/20231208/068c51d5501376af123809ac7098060f.png) 【案例分析】 (1)函数compare()定义了排序方法,通过对price_per_day这一数组元素的对比进行排序。然后usort()采用compare方法对$roomtypes这一多维数组进行排序。 (2)上述这个排序的结果是正向排序,那么如何进行反向排序呢?这就需要对排序方法进行调整。其中,recompare()替换上述代码中的compare()的相反判断,同样采用usort()函数输出后,即可得到反向排序,正好与前一段程序的输出顺序相反。修改后的部分代码如下: ```php function recompare($x, $y){ if ($x['price_per_day'] == $y['price_per_day']){ return 0; }else if ($x['price_per_day'] > $y['price_per_day']){ return -1; }else{ return 1; } } usort($roomtypes, 'recompare'); ```
上一篇:
遍历数组
下一篇:
字符串与数组的转换
该分类下的相关小册推荐:
Magento零基础到架构师(安装篇)
Laravel(10.x)从入门到精通(十三)
Magento2后端开发高级实战
Yii2框架从入门到精通(上)
Magento零基础到架构师(目录管理)
Shopify应用实战开发
PHP合辑5-SPL标准库
Laravel(10.x)从入门到精通(九)
全面构建Magento2电商系统
PHP8入门与项目实战(2)
Laravel(10.x)从入门到精通(十四)
PHP合辑1-基础入门