From bac3f1f3d79cbf3b541118d1ce3c1eee9ea4554f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Thu, 16 Jan 2025 14:55:07 +0100 Subject: [PATCH] feat: sort services --- src/BusProNet/Model/Travel.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/BusProNet/Model/Travel.php b/src/BusProNet/Model/Travel.php index f793f06..a9f632a 100644 --- a/src/BusProNet/Model/Travel.php +++ b/src/BusProNet/Model/Travel.php @@ -74,18 +74,30 @@ class Travel { $group = (array) $group; - return array_filter($this->additionalServices, function (Service $service) use ($group, $availableOnly) { + $services = array_filter($this->additionalServices, function (Service $service) use ($group, $availableOnly) { return in_array($service->subType, $group) && (false === $availableOnly || $service->available > 0); }); + + usort($services, function (Service $a, Service $b) { + return $a->label <=> $b->label; + }); + + return $services; } public function getTransportationServicesByDirection(string $direction, bool $availableOnly = true): array { - return array_filter($this->transportationServices, function (Service $service) use ($direction, $availableOnly) { + $services = array_filter($this->transportationServices, function (Service $service) use ($direction, $availableOnly) { return $direction === $service->direction && $service->price >= 0 && (false === $availableOnly || $service->available > 0); }); + + usort($services, function (Service $a, Service $b) { + return $a->subType <=> $b->subType; + }); + + return $services; } public function getIncludedServices(): array