🛸宇宙船演算子について【PHP】🛸
piyokokkoxです。
本日は私がITエンジニアの仕事をしているということで、私的に便利なphpのとある演算子を紹介したいと思います。その名も、
「宇宙船演算子」
私の周りでは意外と知名度が低くて驚いたのですが、皆様はご存知でしょうか?私は最初聞いた時は正直、名前に惹かれました笑
ちなみに宇宙船演算子はこのように記述します。
<=>
確かに、言われてみればUFO🛸のように見えてくるような気がします...(多分)
機能としては、
- 左辺が右辺より大きい時→1を返す
- 左辺が右辺より小さい時→-1を返す
- 左辺と右辺が等しい時→0を返す
といった機能を持ちます。
使用例としてはソートの時にusort関数と組み合わせることで便利な使い方が可能です。
<?php $array = [4,6,1,3,5,2]; usort($array, function ($a, $b) { return $a <=> $b; }); foreach ($array as $item) { echo $item; } ?> // 出力結果 123456
usortは、
- 返り値0の場合は並べ替えなし。
- 返り値1の場合は左辺を右辺より前のインデックスに持ってくる。
- 返り値-1の場合は左辺を右辺より後ろのインデックスに持ってくる。
といった動きになります。こちらは昇順ソートの例ですが、もちろん降順ソートも可能です。
<?php $array = [4,6,1,3,5,2]; usort($array, function ($a, $b) { return $b <=> $a; }); foreach ($array as $item) { echo $item; } ?> // 出力結果 654321
文字列や日付でも使用できるので、これを応用することで簡単にソート出来てしまう優れものなのです🛸 今回例に挙げたのはPHPでの使用例ですが、PHP以外にもPerl、Ruby、PHP、Groovy、C++などで使用可能みたいなので、そのあたりの言語を使用する方は是非お試しください!
私がよく使用するJavaScriptでも実装される日が来るといいのですが...