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

PHP开发新手求助:如何计算多维数组的每日平均值

解决多维数组每日平均值计算问题

嘿,别担心,这个任务拆解开来其实很容易上手!我来一步步帮你完成计算每日气象指标平均值的需求。

需求分析

我们需要遍历给定的多维数组,对每一天的每个气象指标(比如湿度、温度、降水量)的数值集合计算平均值,最终生成一个以日期为键、包含各指标平均值的结果数组。

完整解决方案代码

<?php
$measurements = array(
    '1_DAY_2017' => array(
        'humidity' => array(15,15,15,15,7,16,11,2),
        'temperature' => array(32,28,27,26,24,24,28,31)
    ),
    '2_DAY_2017' => array(
        'temperature' => array(26,24,24,28,28,26),
        'precipitation' => array(12,15,10,12,7,4,2)
    ),
    '3_DAY_2017' => array(
        'humidity' => array(16,12,15,15,7,16,11,2),
        'temperature' => array(32,28,27,26,24,24,28)
    ),
    '4_DAY_2017' => array(
        'humidity' => array(11,11,15,15,7,16,10,2),
        'temperature' => array(26,24,24,28,31,31,28,26)
    ),
    '5_DAY_2017' => array(
        'humidity' => array(12,15,10,12,7,16,2),
        'temperature' => array(25,24,24,28,31,30,27,26)
    ),
    '6_DAY_2017' => array(
        'humidity' => array(15,11,13,12,7,16,11,2),
        'temperature' => array(25,24,23,28,31,31,27,26)
    ),
    '7_DAY_2017' => array(
        'humidity' => array(14,15,15,15,7,16,11,2),
        'temperature' => array(26,24,24,28,32,31,28,27)
    ),
);

// 初始化结果数组
$dailyAverages = [];

// 遍历每一天的数据
foreach ($measurements as $dayKey => $dayData) {
    // 初始化当天的平均值数组
    $dailyAverages[$dayKey] = [];
    
    // 遍历当天的每个指标
    foreach ($dayData as $metric => $values) {
        // 计算平均值:总和除以数量,保留1位小数(可根据需求调整)
        $average = round(array_sum($values) / count($values), 1);
        // 将平均值存入结果数组
        $dailyAverages[$dayKey][$metric] = $average;
    }
}

// 打印结果查看
print_r($dailyAverages);
?>

代码解释

  • 初始化结果数组:$dailyAverages = [] 创建一个空数组,用来存储最终的每日平均值数据。
  • 外层循环遍历日期:foreach ($measurements as $dayKey => $dayData) 逐个处理每一天的数据集,$dayKey 是日期标识(比如1_DAY_2017),$dayData 是当天的所有气象指标数据。
  • 内层循环遍历指标:foreach ($dayData as $metric => $values) 处理当天的每个指标,$metric 是指标名称(比如temperature),$values 是该指标的所有数值集合。
  • 计算平均值:array_sum($values) 计算数值集合的总和,count($values) 获取数值的数量,两者相除得到平均值;用round(..., 1) 可以将结果保留1位小数,让数据更整洁(你也可以根据需求修改保留的小数位数,或者去掉round 保留原始精度)。
  • 存储结果:将计算好的平均值存入$dailyAverages 对应的位置,最终形成你期望的数组格式。

运行这段代码后,你会得到和需求一致的结果,比如1_DAY_2017的temperature平均值为27.5,完全符合你给出的示例格式。

内容的提问来源于stack exchange,提问作者Prasanth G.S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:55:38