问题描述
您好,我在 Laravel foreach 中对数组进行分组时遇到问题。我有一个像 这样的数组结果来自 laravel eloquent groupby(['date','project_site_id'])。现在我的预期输出是该日期以下的所有日期将被合并 。下面是我的代码。
$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']);