任务是计算事件的重叠(存储在DB中)并将重叠时间显示为事件。 因此,如果我有3个用户,并且他们的事件全天都在传播,并且有时所有3个用户都重叠,那么我想创建一个代表该时间的事件并将其显示在前端。
星期一:用户1发生事件<script src="https://cdn.jsdelivr.net/npm/redux-saga@1.0.2/dist/redux-saga.umd.min.js"></script>
用户2发生事件12:00-13:00
用户3发生事件12:45-13:45
将给出overlayEvent 12:30-14:00
我有一个带有表calendar和calendar_events的数据库。日历代表用户日历,calendar_events具有所有事件。
事件具有12:45-13:00
字段来引用其所属的日历。
我有一个方法可以返回一周中每一天的所有事件。
我已经尝试过每天在for循环中运行所有事件x次(x是用户数量,我需要计算其重叠量),但是由于每个用户的处理时间呈指数增长,这似乎效率很低。
我尝试使用pid
字段作为键来创建一个新数组,但是我真的不知道从这里出发。我需要对照其他用户当天的所有事件检查每个事件。
pid
这是$ AllEvents的样子
$overlapEvents=array();
foreach ($AllEvents as $key => $days)
{
$eventsSorted=array();
foreach ($days as $day => $events)
{
foreach ($events as $event)
{
array_push($eventSorted[$event['pid'],$event);
}
}
}