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

PHP如何为嵌套数组中指定年份的缺失月份补全并赋值为0

PHP嵌套数组补全缺失月份实现方案

实现思路

  • 预定义包含12个英文月份、默认值为0的基准月份数组
  • 遍历原数据的每个年份条目,通过array_merge合并基准数组与当年的已有月份数据:已有月份的数值会覆盖基准的默认0,缺失月份自动保留0值

完整实现代码

// 原始数据
$data = array(
    '2019'=>array('January'=>224, 'March'=>66, 'September'=>301),
    '2018'=>array('April'=>45, 'August'=>116, 'November'=>38)
);

// 定义完整月份基准数组,默认值为0
$fullMonthTemplate = [
    'January' => 0,
    'February' => 0,
    'March' => 0,
    'April' => 0,
    'May' => 0,
    'June' => 0,
    'July' => 0,
    'August' => 0,
    'September' => 0,
    'October' => 0,
    'November' => 0,
    'December' => 0
];

// 遍历补全每个年份的缺失月份
foreach ($data as $year => $monthValues) {
    $data[$year] = array_merge($fullMonthTemplate, $monthValues);
}

// 打印验证结果
print_r($data);

效果说明

处理后的$data中每个年份都会包含全部12个月份,原数组已存在的月份数值保留,缺失月份值统一为0。如果业务中月份使用数字(1~12)作为键,只需修改基准数组的键为对应数字即可,逻辑无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:45:04