/**
* 按年月分组数据(例如账单)
* @param $arr_data 分组的数组
* @param string $time_field 时间分组字段
* @return array
*/
function monthlyGrouping($arr_data,$time_field = 'created_at')
{
if (empty($time_field)) {
return $arr_data;
}
//按月份分组
$arr_month = [];
$arr_year_month = [];
//全部年月数据
$arr_return_data = [];
foreach ($arr_data as $data) {
//按月份分组
$year_month = mb_substr($data[$time_field], 0, 7);
$arr_month[$year_month]['month_data'][] = $data;
if (!isset($arr_year_month[$year_month])) {
$arr_year_month[$year_month] = $year_month;
}
if (!isset($arr_month[$year_month]['obj_month_info']))
{
$arr_month[$year_month]['month_info'] =
[
'year' => mb_substr($year_month, 0, 4),
'month' => mb_substr($year_month, 5, 2),
];
}
}
foreach ($arr_month as $key => $month) {
$arr_return_data[] = $arr_month[$key] ?? [];
}
return $arr_return_data;
}