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"
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]
Top comments (0)