php怎么找出数组中的最大值和最小值_php数组找最值技巧【教程】

雪夜
发布: 2025-12-17 18:58:02
原创
585人浏览过
PHP中获取数组最值有五种方法:一、用max()/min()函数直接求值;二、用array_reduce()自定义比较;三、遍历手动比较;四、结合array_keys()获取最值键名;五、对多维数组先array_column()提取再计算。

php怎么找出数组中的最大值和最小值_php数组找最值技巧【教程】

如果您需要在 PHP 数组中快速定位最大值和最小值,系统提供了内置函数直接获取,同时也支持手动遍历实现。以下是几种常用且可靠的方法:

一、使用内置函数 max() 和 min()

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() 配合匿名函数

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];

ListenLeap
ListenLeap

AI辅助通过播客学英语

ListenLeap 217
查看详情 ListenLeap

2、使用 foreach ($arr as $value) { if ($value > $max) $max = $value; if ($value

3、循环结束后,$max 为 9,$min 为 1

4、若数组可能为空,应在循环前添加 empty($arr) 判断并抛出异常或返回默认值。

四、使用 array_keys() 配合 max()/min() 获取键名

当不仅需要最值本身,还需知道其在数组中的位置(键名)时,可结合 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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号