计算x个事件的重叠

时间:2019-05-15 14:05:46

标签: php

任务是计算事件的重叠(存储在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);

}
}
}

0 个答案:

没有答案