PHP数组学习之比较数组元素,获取第一大和第二大值

简介: 在之前的文章中我们介绍了使用冒泡算法对数组元素进行升序排序的方法,感兴趣的可以点击链接进行查阅→《PHP数组学习之使用冒泡算法对元素进行升序排序!》。这次我们继续PHP数组学习系列,介绍一下比较数组元素,获取第一大和第二大值的方法。本文的主题是:“给出一组数字,计算出它的最大值和第二大值”。

在之前的文章中我们介绍了使用冒泡算法对数组元素进行升序排序的方法,感兴趣的可以点击链接进行查阅→《PHP数组学习之使用冒泡算法对元素进行升序排序!》。这次我们继续PHP数组学习系列,介绍一下比较数组元素,获取第一大和第二大值的方法。
本文的主题是:“给出一组数字,计算出它的最大值和第二大值”。

实现思路:使用数组来包裹这一组数字,因而这里会涉及到了比较数组元素的大小

设置两个变量$max和$secMax,用于存放获取到的最大值和第二大值。不过需要先给大家赋初值,将数组第一个元素和第二个元素赋给它们。但要保证$max比$secMax大,所以要做一个判断

if ($arr[0] > $arr[1]){//这个if是为了防止出现数组第一个值就是最大值

    $secMax = $arr[1];
} else if ($arr[0] < $arr[1]){
    $max = $arr[1];
}

然后使用for循环,不断遍历$arr数组。【不懂的可以阅读文章《PHP循环学习三:如何使用for循环语句遍历数组》】

for ($i = 0;$i< count($arr);$i++){ //循环数组
//循环体
}
在循环体中,不断将$max、$secMax与数组每个值($arr[$i])比较:

如果$arr[$i]比$max大,则将$max值赋给$secMax,把$arr[$i]赋给$max,

if ($arr[$i] > $max){

$secMax = $max;
$max = $arr[$i];

}
而如果 $arr[$i] 小于 $max,但 $arr[$i] 又大于 $secMax,则只交换 $secMax 和 $arr[$i] 间的值 ,将$arr[$i]复制给$secMax。

if ($arr[$i] < $max && $arr[$i] > $secMax){

  $secMax = $arr[$i];

}
这样不断比较下去,就可以确保$max存放着数组最大值,$secMax存放着数组第二大值。

我们来看看完整的实现代码:

function takeNum($arr){
//定义了两个变量$max和$secMax来存放最大和第二大的数值

$max = 0;
$secMax = 0;
if ($arr[0] > $arr[1]){//这个if是为了防止出现数组第一个值就是最大值
    $secMax = $arr[1];
} else if ($arr[0] < $arr[1]){
    $max = $arr[1];
}
for ($i = 0;$i< count($arr);$i++){//循环数组
    if ($arr[$i] > $max){
        $secMax = $max;
        $max = $arr[$i];
    } else if ($arr[$i] < $max && $arr[$i] > $secMax){
        $secMax = $arr[$i];
    }
}
echo "最大值为".$max.",第二大值为".$secMax;

}
测试一下:定义了下面一个数组,调用takeNum($arr)函数来看看输出情况

$arr = array(555,5,1,429,18,21,52,2,52,9,3,);
takeNum($arr);
可以看出第一大值为555,第二大值为429;看看输出结果是不是这个:

1.png

OK,输出结果是正确的。

接下来我们来聊聊使用到的知识点,循环就不必多说了(可以阅读文章《PHP循环学习系列大汇总》),下面给大家简单介绍一下if else 语句。

if else 语句是流程控制中根据条件判断执行的一种。该语句执行时先对条件进行判断,然后根据判断结果做出相应的操作。它又可以细分为三种,分别是 if 语句、if...else 语句、if...else if...else 语句。

if 语句的语法:

if (判断条件) {

语句块;

}
if...else 语句的语法:

if (判断条件) {

语句块 1;

} else {

语句块 2;

}
if...else if...else 语句的语法:

if (判断条件 1) {

语句块 1;

} else if (判断条件 2) {

语句块 2;

} else if (判断条件 3) {

语句块 3;

}
......
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!

以上就是PHP数组学习之比较数组元素,获取第一大和第二大值的详细内容,更多请关注富贵论坛www.fgba.net其它相关文章!

目录
相关文章
|
14天前
|
存储 数据处理 PHP
深入浅出PHP编程之数组操作技巧
【10月更文挑战第30天】在PHP编程的海洋里,数组是一艘承载着数据结构的小船,掌握其操控之道,能让开发者在编码的旅程中乘风破浪。本文将带你领略数组的强大功能,从基础使用到高级应用,一步步揭开数组操作的神秘面纱。准备好你的航海装备,让我们启航吧!
34 4
|
1月前
|
SQL 关系型数据库 MySQL
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
38 9
|
8天前
|
存储 缓存 搜索推荐
优化PHP数组性能
优化PHP数组性能
27 8
|
8天前
|
算法 搜索推荐 Java
05 一文解决PHP数组操作
路老师带你深入PHP世界,从数组的基础知识讲起,包括数组的创建、赋值、类型(数字索引数组与关联数组)、多维数组,以及常用数组函数如遍历、统计、查询、添加、删除重复元素和排序等。实例讲解,轻松上手。下期预告:PHP面向对象。
11 2
|
2月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
2月前
|
存储 PHP
PHP编程中的数组操作技巧
【9月更文挑战第28天】在PHP编程中,数组是一种基础且强大的数据结构,它可以存储多个值,并且允许我们使用键来访问这些值。本文将介绍一些实用的PHP数组操作技巧,包括创建数组、遍历数组、排序数组和合并数组等。通过掌握这些技巧,你将能够更高效地处理数据和解决实际问题。
|
2月前
|
存储 数据处理 PHP
深入理解PHP中的数组
【9月更文挑战第3天】在PHP编程中,数组扮演着不可或缺的角色。它们不仅提供了一种灵活的方式来存储和操作数据,还极大地丰富了开发者处理复杂信息结构的能力。本文将带你深入了解PHP数组的基础知识、高级特性以及如何高效地利用数组来简化代码逻辑,提升开发效率。
|
2月前
|
SQL 安全 IDE
如何开始学习PHP?
【9月更文挑战第1天】如何开始学习PHP?
46 1