piyokokkox’s blog

技術、グルメ、輸入菓子、料理、日常、ゲームなど...書きたいことを書き殴る

🛸宇宙船演算子について【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以外にもPerlRubyPHP、Groovy、C++などで使用可能みたいなので、そのあたりの言語を使用する方は是非お試しください!

私がよく使用するJavaScriptでも実装される日が来るといいのですが...