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其它相关文章!

目录
相关文章
|
15天前
|
SQL 关系型数据库 MySQL
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
36 9
|
1月前
|
存储 API PHP
php学习笔记-php数组的创建和使用,数组常用函数-day03
关于PHP数组的创建、使用以及常用函数的详细学习笔记。
php学习笔记-php数组的创建和使用,数组常用函数-day03
|
28天前
|
存储 PHP
PHP编程中的数组操作技巧
【9月更文挑战第28天】在PHP编程中,数组是一种基础且强大的数据结构,它可以存储多个值,并且允许我们使用键来访问这些值。本文将介绍一些实用的PHP数组操作技巧,包括创建数组、遍历数组、排序数组和合并数组等。通过掌握这些技巧,你将能够更高效地处理数据和解决实际问题。
|
1月前
|
存储 数据处理 PHP
深入理解PHP中的数组
【9月更文挑战第3天】在PHP编程中,数组扮演着不可或缺的角色。它们不仅提供了一种灵活的方式来存储和操作数据,还极大地丰富了开发者处理复杂信息结构的能力。本文将带你深入了解PHP数组的基础知识、高级特性以及如何高效地利用数组来简化代码逻辑,提升开发效率。
|
1月前
|
IDE 关系型数据库 PHP
php语言学习
【9月更文挑战第1天】php语言学习
31 3
|
1月前
|
SQL 安全 IDE
如何开始学习PHP?
【9月更文挑战第1天】如何开始学习PHP?
41 1
|
2月前
|
安全 PHP 开发者
PHP中的数组操作技巧
【8月更文挑战第29天】在PHP编程中,数组是一个基本且强大的数据结构。本文将通过浅显易懂的语言和生动的比喻,带你深入理解PHP数组的操作技巧。我们将一起探讨如何高效地使用数组函数,以及如何通过这些技巧来优化你的代码。无论你是PHP初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。让我们一起探索数组的世界,发现它的无限可能!
|
2月前
|
测试技术 PHP 开发者
PHP中的数组遍历技巧与性能优化
【8月更文挑战第31天】在PHP编程中,数组是最常用的数据结构之一。掌握数组的遍历技巧不仅能提高代码的可读性,还能在一定程度上提升程序的运行效率。本文将介绍几种常见的数组遍历方法,并通过实际代码示例对比它们的性能差异,帮助开发者在编写PHP代码时做出更优的选择。
|
2月前
|
存储 数据处理 PHP
探索PHP中的数组操作技巧
【8月更文挑战第30天】在PHP编程的世界中,数组是数据存储和操作的核心。掌握数组的各种操作,可以大幅提高代码的效率和可读性。本文将带你深入理解PHP数组的创建、遍历、排序以及多维数组的使用,让你在处理复杂数据时更加得心应手。