You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP获取多个数组中最高值的更优实现方法咨询

原代码存在的问题

  • 三层嵌套foreach存在大量重复计算,性能极差,数组元素多的时候耗时会成倍增长
  • 逻辑判断混乱,前两层循环的判断逻辑是取最小值,仅靠第三层的反向判断得到正确结果,逻辑可维护性极低

优化方案1:合并数组后取最大值(最常用,易维护)

核心思路是先把所有要统计的数组合并为一个大数组,直接调用PHP内置的max()函数获取最大值,代码如下:

<?php
$marks1 = array(360,310,310,330,313,375,456,111,256);
$marks2 = array(350,340,356,330,321);
$marks3 = array(630,340,570,635,434,255,298);

// 合并所有数组
$all_marks = array_merge($marks1, $marks2, $marks3);
// 取数组最大值
$max_value = max($all_marks);

echo $max_value."<br>";
?>

优势:

  • 逻辑直白,任何人都能快速看懂代码意图
  • 内置函数经过官方底层优化,执行效率远高于手写循环
  • 后续新增数组只需要在array_merge中加参数即可,维护成本极低

优化方案2:分别取单个数组最大值再比较(适合需要单独统计各数组最大值的场景)

如果后续你需要单独拿到每个数组的最大值,不需要合并数组,直接嵌套调用max()即可:

<?php
$marks1 = array(360,310,310,330,313,375,456,111,256);
$marks2 = array(350,340,356,330,321);
$marks3 = array(630,340,570,635,434,255,298);

$max_value = max(max($marks1), max($marks2), max($marks3));
echo $max_value."<br>";
?>

两种方案最终输出结果都是635,和你原代码运行结果完全一致


内容的提问来源于stack exchange,提问作者Osama Zubair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:36:04