如何修复PHP中的数组错误Undefined Offset



合并日期相同但在第三次迭代时出错的数据。合并日期相同但在第三次迭代时出错的数据。

$summary = SummaryReport::with('accomplishments.employee')->with(['accomplishments' => function 
($query) use ($employee) {
$query->where('emp_id', $employee->id);
$query->orderBy('date', 'ASC');
}])->find($id);
$accomplishments = [];
$date = "";
for ($i = 0; $i < count($summary->accomplishments); $i++) {
if ($summary->accomplishments[$i]["date"] == $date) {
$accomplishments[$i - 1]['accomplishment'] = $accomplishments[$i - 1]['accomplishment'] . ', ' . $summary->accomplishments[$i]['accomplishment'];
continue;
}
array_push($accomplishments, $summary->accomplishments[$i]);
$date = $summary->accomplishments[$i]['date'];
}

根据日期分组的特定汇总报告中特定员工的成就

查询后执行以下

$acc_by_date = $summary->accomplishments->groupBy('date');
$result = [];
foreach($acc_by_date as $date => $accs){
$result[$date] = [
'accomplishments' => $accs->pluck('accomplishment')->reduce(
function ($carry, $item) {
return $carry . ", " .  $item;
}),
'remarks' => $accs->pluck('remarks')->reduce(
function ($carry, $item) {
return $carry . ", " .  $item;
}),
'remarks_as_array' => $accs->pluck('remarks') 
];
}

相关内容