You need to enable JavaScript to run this app. PHP如何获取二维数组按垂直方向(列)的每列最大值?
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何获取二维数组按垂直方向(列)的每列最大值?

问题原因

你现有的代码是遍历每个用户的成绩数组,取每个用户自身所有成绩的最大值,属于横向统计逻辑,和你要的纵向同位置取最大值的需求不符。

实现方案

方案1:常规循环实现(可读性更高)

$max = [];
// 取首个用户的成绩数量作为总列数,默认所有用户的成绩数量一致
$totalColumns = count(reset($scores));
for ($i = 0; $i < $totalColumns; $i++) {
    // 取出所有用户第i位的成绩
    $currentColumn = array_column($scores, $i);
    $max[] = max($currentColumn);
}
var_dump($max);
// 输出结果:[75, 80, 90, 90, 80, 80]
// 你给出的预期输出少了最后一位的最大值80,属于笔误

方案2:函数式简洁写法

$max = array_map('max', ...array_values($scores));

实现原理:

  1. 先用array_values把关联数组$scores转为索引数组,再通过可变参数语法...将五个用户的成绩数组作为多个参数传入array_map
  2. array_map会依次将每个参数数组的同位置元素传给回调函数max,直接得到每列的最大值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 13:27:03