php按年月分组数据(例如账单)

先生博客

文章最后更新时间:2022年01月27日

将数据进行按年月分组的需求其实挺常见的, 例如支付宝 / 微信的账单就有按年月组合php账单或者其他类型的数据结构按照年月分组,代码如下:

 
/**
 * 按年月分组数据(例如账单)
 * @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;
}


文章版权声明:除非注明,否则均为先生博客原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (暂无评论,338人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码