【问题标题】:I need help. How to group array by date using laravel eloquent and foreach loop?我需要帮助。如何使用 laravel eloquent 和 foreach 循环按日期对数组进行分组?
【发布时间】:2021-05-15 20:42:50
【问题描述】:

您好,我在 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>';
    }
}

【问题讨论】:

    标签: laravel loops foreach eloquent laravel-8


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-07-04
      • 2011-04-15
      • 1970-01-01
      • 2018-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      相关资源
      最近更新 更多