步骤:1、用array_values()将数组转为索引数组;2、定义了1个变量来存放最大值,语法“$m=$arr[0];”;3、利用for语句遍历数组,语法“for($i=0;$i<数组长度;$i++){...}”;4、循环体中,不断将“$m”与数组每个值进行比较,如果值大于“$m”就将该值赋值给“$m”即可,语法“if($arr[$i]>$m){$m=$arr[$i];}”。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

在php中,可以通过在for循环中,不断将$max与数组每个值($arr[$i])比较;如果大于$max就将该元素赋值给$max即可。

实现步骤:

步骤1:使用array_values()函数将数组转为索引数组

array_values()函数的作用是返回数组中所有元素的值,使用起来非常简单,只有一个必选参数$array,就可以返回一个包含给定数组中所有值的数组,但不保留键名。被返回的数组将使用索引数组的形式,数组的索引从 0 开始且以 1 递增。

array_values($array)

步骤2:定义了1个变量$max来存放最大值

$max = $arr[0];

步骤3:利用for语句遍历数组

for ($i = 0;$i< 数组长度;$i++){//循环数组
    //循环体语句块;
}

步骤4:在循环体中,不断将$max与数组每个值($arr[$i])比较,如果大于$max就将该元素赋值给$max

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

if ($arr[$i] > $max){
    $max = $arr[$i];
}

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

实现示例代码:

<?php
header('content-type:text/html;charset=utf-8');
function takeNum($array){
	$arr=array_values($array);
	
	//定义了1个变量$max来存放最大值
    $max = $arr[0];
	for ($i = 0;$i< count($arr);$i++){//循环数组
	
		if ($arr[$i] > $max) {
			$max = $arr[$i];
		}
	}
		echo "最大值为".$max;
}


$array = array(1=>"1","a"=>"5",2=>"3","b"=>0,"c"=>"4");
var_dump($array);
takeNum($array);
?>

测试一下:

定义了下面一个数组,调用takeNum($array)函数来看看输出情况

$array = array(0,5,1,429,18,21,52,2,52,9,3,"5");
var_dump($array);
takeNum($array);

1.png

定义了下面一个数组,调用takeNum($array)函数来看看输出情况

$array = array(1=>"1","a"=>"5",2=>"3","b"=>0,"c"=>"4");
var_dump($array);
takeNum($array);

2.png


php怎么用for循环求数组最大值