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
相关产品推荐
相关产品推荐

