PHP中获取数组最值有五种方法:一、用max()/min()函数直接求值;二、用array_reduce()自定义比较;三、遍历手动比较;四、结合array_keys()获取最值键名;五、对多维数组先array_column()提取再计算。

如果您需要在 PHP 数组中快速定位最大值和最小值,系统提供了内置函数直接获取,同时也支持手动遍历实现。以下是几种常用且可靠的方法:
PHP 提供了原生函数 max() 和 min(),可直接对一维数值数组进行求值,无需循环,执行效率高,适用于索引数组和关联数组(仅比较值)。
1、定义一个包含数字的数组,例如 $arr = [3, 7, 2, 9, 1];
2、调用 $max = max($arr); 获取最大值,结果为 9。
立即学习“PHP免费学习笔记(深入)”;
3、调用 $min = min($arr); 获取最小值,结果为 1。
4、若数组为空或仅含非数值元素,max() 和 min() 将返回 FALSE,需提前校验。
array_reduce() 可将数组逐步归约为单个值,适合自定义比较逻辑,兼容字符串、多类型混合数组(需显式类型处理)。
1、初始化 $arr = [3, 7, 2, 9, 1];
2、计算最大值:$max = array_reduce($arr, function($carry, $item) { return $carry > $item ? $carry : $item; }, PHP_INT_MIN);
3、计算最小值:$min = array_reduce($arr, function($carry, $item) { return $carry
4、最终 $max 值为 9,$min 值为 1。
通过 foreach 循环逐个访问元素,维护临时变量记录当前极值,适用于需同时获取键名、处理特殊条件(如跳过 null 或 NaN)的场景。
1、声明 $arr = [3, 7, 2, 9, 1]; $max = $arr[0]; $min = $arr[0];
2、使用 foreach ($arr as $value) { if ($value > $max) $max = $value; if ($value
3、循环结束后,$max 为 9,$min 为 1。
4、若数组可能为空,应在循环前添加 empty($arr) 判断并抛出异常或返回默认值。
当不仅需要最值本身,还需知道其在数组中的位置(键名)时,可结合 array_keys() 定位首次匹配项。
1、设定 $arr = ['a' => 3, 'b' => 7, 'c' => 2, 'd' => 9, 'e' => 1];
2、获取最大值对应键名:$max_key = array_keys($arr, max($arr))[0]; 结果为 d。
3、获取最小值对应键名:$min_key = array_keys($arr, min($arr))[0]; 结果为 e。
4、注意:若存在重复最值,array_keys() 返回所有匹配键组成的索引数组,[0] 取第一个出现位置。
对于嵌套数组(如二维数值矩阵),需先扁平化或逐层迭代;array_column() + max()/min() 适用于规则结构(如对象列表或关联子数组)。
1、定义 $data = [['score' => 85], ['score' => 92], ['score' => 78]];
2、提取 score 列:$scores = array_column($data, 'score');
3、计算最大分:$top = max($scores); 结果为 92。
4、计算最低分:$lowest = min($scores); 结果为 78。
以上就是php怎么找出数组中的最大值和最小值_php数组找最值技巧【教程】的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号