Что-то вроде
$days = ['Sun' => 'Mon', 'Mon' => 'Tue', 'Tue' => 'Wed', 'Wed' => 'Thu', 'Thu' => 'Fri', 'Fri' => 'Sat', 'Sat' => 'Sun'];
$toAdd = [];
$toAddCount=0;
foreach($events as $key => $event) {
$datestart = explode($event['datestart'], ' ');
if(empty($expectedDate)) {
$expectedDay = $datestart[0];
$expectedDate = $datestart[1];
}
if($expectedDate != $datestart[1]) {
$toAdd[$key + $toAddCount]['datestart'] = "$expectedDay $expectedDate";
// $toAdd[$key + $toAddCount]['нужное_поле'] = 'нужное_значение';
$toAddCount++; // добавили элемент - смещение для следующих надо увеличить
$expectedDay = $datestart[0];
$expectedDate = $datestart[1];
}
$expectedDate++;
$expectedDay = $days[$expectedDay];
}
foreach ($toAdd as $key => $value) {
array_splice($events, $key, 0, $value);
}