<?php
$array_list= array("Jan 2016"=>2, "Feb 2016"=>4, "Mar 2016"=>2,"Apr 2016"=>0, "Jan 2017"=>9,"Feb 2017"=>2,"Mar 2017"=>5,"Jan 2018"=>4,"Feb 2018"=>6);
$start = microtime(1);
$array = array();
foreach($array_list as $key => $value):
$MonthYear_label = explode(" ",$key);
$year_label = $MonthYear_label[1];
$month_label = $MonthYear_label[0];
$curr_year = $year_label;
$array[$curr_year]['count'] = $array[$curr_year]['count'] + $value;
endforeach;
echo (microtime(1)-$start)*1000 . "\n";
$start = microtime(1);
foreach(array_keys($array_list) as $key){
$years[] = explode(" ", $key)[1];
}
foreach(array_unique($years) as $year){
$res[$year] = array_sum(array_intersect_key(array_values($array_list), array_intersect($years, [$year])));
}
echo (microtime(1)-$start)*1000 . "\n";
preferences:
24.88 ms | 412 KiB | 5 Q