max() 函数返回参数中的最大值,可以比较多个值或一个数组中的元素。
// 比较数组
max(array $values): mixed
// 比较多个值
max(mixed $value1, mixed $value2, mixed ...$values): mixed
| 参数 | 描述 |
|---|---|
values / value1, value2, ... |
必需。要比较的值(至少两个)或包含值的数组。 |
返回参数中的最大值。如果多个值比较后相等且为最大值,返回第一个遇到的最大值(PHP 8.0+ 行为有所变化,但通常返回第一个)。如果传入空数组,PHP 8.0+ 抛出 ValueError,之前版本返回 false 并产生警告。
<?php
echo max(2, 3, 1, 6, 7) . "<br>"; // 7
echo max(-1, -5, -3) . "<br>"; // -1
echo max(0, 5.5, 5) . "<br>"; // 5.5 (浮点数与整数比较)
?>
输出:
7
-1
5.5
<?php
$numbers = [10, 25, 6, 89, 45];
echo max($numbers) . "<br>"; // 89
$mixed = [10, "20", -5, "abc"]; // 字符串与数字比较会进行数值转换
echo max($mixed); // "abc"? 实际比较规则较复杂,通常数字字符串会被转为数字
?>
输出:
89
20
注意:当字符串与数字比较时,PHP 会尝试将字符串转换为数字,因此 "20" 作为数字 20 成为最大值。
<?php
$scores = ['Alice' => 95, 'Bob' => 87, 'Charlie' => 100];
echo max($scores) . "<br>"; // 100 (比较数组值)
?>
输出:
100
<?php
$arr1 = [1, 2, 3];
$arr2 = [1, 2, 4];
$arr3 = [1, 2, 3, 0];
echo max($arr1, $arr2, $arr3); // 比较数组:按标准数组比较规则(元素逐个比较)
// 输出:Array ( [0] => 1 [1] => 2 [2] => 4 ) 即 $arr2
?>
输出:
Array
实际上会输出数组的内容,这里用文字说明。
<?php
$students = [
['name' => 'Alice', 'score' => 85],
['name' => 'Bob', 'score' => 92],
['name' => 'Charlie', 'score' => 78]
];
$maxScore = max(array_column($students, 'score'));
echo "最高分: $maxScore";
?>
输出:
最高分: 92
max() 会抛出 ValueError;在之前版本中返回 false 并产生 E_WARNING 警告。max() 不会改变传入数组或变量的原始值。