Hey, vielen Dank für die Hilfe! Ich hab allerdings Probleme mit der Umsetzung Ich hab hier mal meine Funktion: Code: function getNumberOfMaxOverlaps(DateTime $date,array $tasks){ $tasksOfThisDay = array(); foreach($tasks as $task) { if($task->start->format('Y-m-d') == $date->format('Y-m-d')) { $tasksOfThisDay[] = $task; } } $overlap = array(); foreach ($tasksOfThisDay as $task1) { foreach ($tasksOfThisDay as $task2) { if (strtotime($task1->start->format("Y-m-d HH:ii:ss")) < strtotime($task2->end->format("Y-m-d HH:ii:ss")) && strtotime($task1->start->format("Y-m-d HH:ii:ss")) >= strtotime($task2->start)) { $array = array($task1->id, $task2->id); sort($array); if (!in_array($array, $overlap)) $overlap[] = $array; } } } } $overlap zeigt am Ende allerdings immer 0 an. Gearbeitet habe ich mit folgenden Daten Code: $rows = array();$class = new stdClass(); $class->id = 1; $class->name = 'Test'; $class->description = 'Test Description'; $class->start = '2014-06-17 06:05:00'; $class->end = '2014-06-17 07:00:00'; $rows[] = $class; $class = new stdClass(); $class->id = 2; $class->name = 'Test 2'; $class->description = 'Test Description 2'; $class->start = '2014-06-17 07:00:00'; $class->end = '2014-06-17 07:40:00'; $rows[] = $class; $class = new stdClass(); $class->id = 3; $class->name = 'Test 2'; $class->description = 'Test Description 2'; $class->start = '2014-06-17 09:00:00'; $class->end = '2014-06-17 09:40:00'; $rows[] = $class; $class = new stdClass(); $class->id = 4; $class->name = 'Test 2'; $class->description = 'Test Description 2'; $class->start = '2014-06-17 10:00:00'; $class->end = '2014-06-17 11:40:00'; $rows[] = $class;
function getNumberOfMaxOverlaps(DateTime $date,array $tasks){ $tasksOfThisDay = array(); foreach($tasks as $task) { if($task->start->format('Y-m-d') == $date->format('Y-m-d')) { $tasksOfThisDay[] = $task; } } $overlap = array(); foreach ($tasksOfThisDay as $task1) { foreach ($tasksOfThisDay as $task2) { if (strtotime($task1->start->format("Y-m-d HH:ii:ss")) < strtotime($task2->end->format("Y-m-d HH:ii:ss")) && strtotime($task1->start->format("Y-m-d HH:ii:ss")) >= strtotime($task2->start)) { $array = array($task1->id, $task2->id); sort($array); if (!in_array($array, $overlap)) $overlap[] = $array; } } } }
$rows = array();$class = new stdClass(); $class->id = 1; $class->name = 'Test'; $class->description = 'Test Description'; $class->start = '2014-06-17 06:05:00'; $class->end = '2014-06-17 07:00:00'; $rows[] = $class; $class = new stdClass(); $class->id = 2; $class->name = 'Test 2'; $class->description = 'Test Description 2'; $class->start = '2014-06-17 07:00:00'; $class->end = '2014-06-17 07:40:00'; $rows[] = $class; $class = new stdClass(); $class->id = 3; $class->name = 'Test 2'; $class->description = 'Test Description 2'; $class->start = '2014-06-17 09:00:00'; $class->end = '2014-06-17 09:40:00'; $rows[] = $class; $class = new stdClass(); $class->id = 4; $class->name = 'Test 2'; $class->description = 'Test Description 2'; $class->start = '2014-06-17 10:00:00'; $class->end = '2014-06-17 11:40:00'; $rows[] = $class;
Foren-Regeln