DEV Community

thiCha
thiCha

Posted on

Spaceship operator πŸš€ in PHP

Introduced in PHP 7, the Spaceship operator <=> is used to compare two expressions.

It returns:

  • 0 if both values are equal
  • 1 if left operand is greater
  • -1 if right operand is greater

Let’s see it with an example:

echo 2 <=> 2; // Outputs 0
echo 3 <=> 1; // Outputs 1
echo 1 <=> 3; // Outputs -1

echo "b" <=> "b"; // Outputs  0
echo "a" <=> "c"; // Outputs -1
echo "c" <=> "a"; // Outputs 1

// Note: for string comparison, the ASCII value of the characters are used, that is why "c" is greater than "a"
echo "ping" <=> "pong"; // Outputs -1 since "o" is greater than "i"
Enter fullscreen mode Exit fullscreen mode

This operator can be used for sorting arrays:

$numbers = [1, 4, 5, 9, 2, 3];

usort($numbers, function ($a, $b) {
    return $a <=> $b; // Sort in ascending order
});

echo print_r($numbers); // Outputs [1,2,3,4,5,9]

usort($numbers, function ($a, $b) {
    return $b <=> $a; // Sort in descending order
});

echo print_r($numbers); // [9,5,4,3,2,1]
Enter fullscreen mode Exit fullscreen mode

Top comments (0)