Elvis w statku kosmicznym

Czy widzicie Elvisa w statku kosmicznym?

usort(
  $data,
  fn(array $a, array $b) => $a['label'] <=> $b['label'] ?: $a['id'] <=> $b['id']
)

Gdzie jest Elvis? Elvis tudzież „Elvis operator” to potoczna nazwa operatora warunkowego ?: który zwraca pierwsze wyrażenie, którego wartość jest prawdziwa. Z kolei statek kosmiczny (ang. „spaceship operator”) to potoczna nazwa operatora <=> który dokonuje trójstronnego porównania wartości.

Powyższy kawałek kodu sortuję tablicę $data po kluczu label, a w wypadku gdy wartości label są identyczne dodatkowo po kluczu id. Dzięki Elvisowi i statkom kosmicznym kod jest bardzo zwięzły.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *