微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我需要帮助如何使用 Laravel eloquent 和 foreach 循环按日期对数组进行分组?

如何解决我需要帮助如何使用 Laravel eloquent 和 foreach 循环按日期对数组进行分组?

您好,我在 Laravel foreach 中对数组进行分组时遇到问题。我有一个

My Sample Array

这样的数组结果来自 laravel eloquent groupby(['date','project_site_id'])。现在我的预期输出是该日期以下的所有日期将被合并

Expected sample output

。下面是我的代码

$current_date = Carbon::parse(date('Y-m-d'));

$data = EmployeeActivities::where('date','>=',$current_date->startOfWeek()->format('Y-m-d'))
    ->where('date','<=',$current_date->endOfWeek()->format('Y-m-d'))
    ->get()
    ->groupBy(['date','project_site_id']);

foreach($data as $key => $value){
    foreach($value as $key_nested){
        echo $key.' '.$key_nested.'</br></br>';
    }
}

解决方法

根据 group by 子句 groupBy(['date','project_site_id']) 结果显示良好,因为对于日期 2021-02-01 有 2 行具有不同的 project_site_id,这就是它们被分开的原因。如果您只想按日期对集合进行分组,则从分组条件中删除 project_site_id

$data = EmployeeActivities::where('date','>=',$current_date->startOfWeek()->format('Y-m-d'))
                          ->where('date','<=',$current_date->endOfWeek()->format('Y-m-d'))
                          ->get()
                          ->groupBy(['date']);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。