3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array1 = [ "2018" => [ "JAN" => 100, "FEB" => 200, "MAR" => 300, "APR" => 400 ] ]; $array2 = [ "2018" => [ "FEB" => 200, "MAR" => 300, "APR" => 400, "MAY" => 200, ] ]; $array3 = [ "2018" => [ "MAY" => 200, "JUN" => 100, "JUL" => 300, "AUG" => 400, ] ]; $new = array_merge_recursive([$array1], [$array2], [$array3]); foreach($new as $arr){ foreach($arr as $year => $sub){ foreach($sub as $month => $val){ if(!isset($res[$year][$month])) $res[$year][$month] =0; $res[$year][$month] += $val; } } } var_dump($res);
Output for 5.6.38, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array(1) { [2018]=> array(8) { ["JAN"]=> int(100) ["FEB"]=> int(400) ["MAR"]=> int(600) ["APR"]=> int(800) ["MAY"]=> int(400) ["JUN"]=> int(100) ["JUL"]=> int(300) ["AUG"]=> int(400) } }

preferences:
147.36 ms | 408 KiB | 5 Q