diff --git a/src/BusProNet/DataProcessor/PickupPlanningTransformer.php b/src/BusProNet/DataProcessor/PickupPlanningTransformer.php index 16a56a0..34b4081 100644 --- a/src/BusProNet/DataProcessor/PickupPlanningTransformer.php +++ b/src/BusProNet/DataProcessor/PickupPlanningTransformer.php @@ -29,15 +29,22 @@ class PickupPlanningTransformer $dateTime = \DateTimeImmutable::createFromFormat('d.m.Y H:i', $item['Zeit'] ?? ''); foreach ($travelCodes as $code) { - $result[$code][] = [ + $pickup = [ 'city' => $item['Zustieg/Ausstieg Ort'] ?? '', 'location' => $item['Zustieg/Ausstieg Strasse'] ?? '', 'datetime' => false !== $dateTime ? $dateTime->format('Y-m-d H:i') : '', ]; + + $key = sprintf('%s|%s|%s', $pickup['city'], $pickup['location'], $pickup['datetime']); + + if (false === isset($result[$code][$key])) { + $result[$code][$key] = $pickup; + } } } foreach ($result as $code => $pickups) { + $pickups = array_values($pickups); usort($pickups, static fn (array $a, array $b): int => $a['datetime'] <=> $b['datetime']); $result[$code] = $pickups; }