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