diff --git a/lib/WildcardEmitterTrait.php b/lib/WildcardEmitterTrait.php index 69243ff..1de2ef4 100644 --- a/lib/WildcardEmitterTrait.php +++ b/lib/WildcardEmitterTrait.php @@ -126,11 +126,9 @@ public function listeners(string $eventName): array if (!\array_key_exists($eventName, $this->listenerIndex)) { // Create a new index. $listeners = []; - $listenersPriority = []; if (isset($this->listeners[$eventName])) { foreach ($this->listeners[$eventName] as $listener) { - $listenersPriority[] = $listener[0]; - $listeners[] = $listener[1]; + $listeners[] = $listener; } } @@ -138,17 +136,18 @@ public function listeners(string $eventName): array // Wildcard match if (\substr($eventName, 0, \strlen($wcEvent)) === $wcEvent) { foreach ($wcListeners as $listener) { - $listenersPriority[] = $listener[0]; - $listeners[] = $listener[1]; + $listeners[] = $listener; } } } // Sorting by priority - \array_multisort($listenersPriority, SORT_NUMERIC, $listeners); + \usort($listeners, static function ($l1, $l2) { + return $l1[0] <=> $l2[0]; + }); // Creating index - $this->listenerIndex[$eventName] = $listeners; + $this->listenerIndex[$eventName] = \array_column($listeners, 1); } return $this->listenerIndex[$eventName];