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

如何对动态生成数组的对应键值求和并计算平均值?

实现对应键值的求和与平均值计算

我来给你捋个清晰的实现思路,直接上手就能用的那种:

第一步:初始化总和存储容器

首先得提前准备两个变量:一个数组用来存每个键对应的累加总和,一个计数器记录迭代的总次数(写成通用型的,哪怕以后迭代次数不是3次也能直接用)。代码如下:

$sumArray = [];
$iterationCount = 0;

第二步:遍历数据,累加对应键值

接着遍历你的$data['data'](也就是每一轮迭代生成的数组组),内层循环把每个键的值累加到sumArray对应的位置上:

foreach ($data['data'] as $item) {
    $iterationCount++;
    foreach ($item as $key => $value) {
        // 第一次遇到该键时,先初始化为0再累加
        if (!isset($sumArray[$key])) {
            $sumArray[$key] = 0;
        }
        $sumArray[$key] += $value;
    }
}

第三步:计算每个键的平均值

最后遍历总和数组,用每个键的累加值除以迭代次数,就能得到对应键的平均值了:

$averageArray = [];
foreach ($sumArray as $key => $total) {
    $averageArray[$key] = $total / $iterationCount;
    // 要是需要控制小数位数,比如保留1位,可以用这个:
    // $averageArray[$key] = number_format($total / $iterationCount, 1);
}

举个实际例子验证

假设你的$data['data']是这样的三组数据:

$data['data'] = [
    ['math' => 87, 'english' => 76.5],
    ['math' => 95.2, 'english' => 82.3],
    ['math' => 100, 'english' => 90]
];

跑上面的代码后,$averageArray就会得到:

[
    'math' => (87+95.2+100)/3 ≈ 94.07,
    'english' => (76.5+82.3+90)/3 ≈ 82.93
]

这个逻辑和你现有的两层foreach结构完全匹配,不管迭代次数是3次还是更多次都能通用,直接套进你的代码里就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:56:50