Czy widzicie Elvisa w statku kosmicznym?
1 2 3 4 | 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.