<?php
$data[2020] = array_fill_keys(range(1,12), '1,000');
$data[2021] = array_fill_keys(range(1,8), '1,500');
$data[2021][9] = null;
$data[2021][10] = null;
$data[2021][11] = null;
$data[2021][12] = null;
$thisYear = $year ?? date('Y');
$lastYear = $thisYear - 1;
$thisYearRunningTotal = 0;
$lastYearRunningTotal = 0;
$result = [];
for ($month = 1; $month <= 12; ++$month) {
$thisYearMonthTotal = $data[$thisYear][$month]; // from model
$thisYearRunningTotal = $thisYearMonthTotal === null
? null
: (int)str_replace(',', '', $thisYearMonthTotal) + $thisYearRunningTotal;
$lastYearMonthTotal = $data[$lastYear][$month]; // from model
$lastYearRunningTotal = $lastYearMonthTotal === null
? null
: (int)str_replace(',', '', $lastYearMonthTotal) + ($lastYearRunningTotal ?? 0);
$result[] = [
'month' => $month,
'total_now' => $thisYearRunningTotal,
'total_before' => $lastYearRunningTotal,
];
}
var_export($result);
preferences:
23.27 ms | 408 KiB | 5 Q