Spaceship Operator (<=>)
Uses the spaceship operator inside a named comparison function for sorting numeric priorities.
Purpose
Uses the spaceship operator inside a named comparison function for sorting numeric priorities.
Snippet details
ContextComparisonLevelProductionCopy-and-paste statusMarked safe after review.Categories
- Forms and Validation
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Spaceship Operator (<=>).
*
* Purpose:
* Sorts rows by numeric priority using the spaceship comparison operator.
*
* @param array $first First row.
* @param array $second Second row.
* @return int Sort comparison result.
*/
function ogSnippetSpaceshipPriorityCompare(array $first, array $second): int {
$first_priority = 0;
$second_priority = 0;
if (isset($first['priority']) === true) {
$first_priority = (int) $first['priority'];
}
if (isset($second['priority']) === true) {
$second_priority = (int) $second['priority'];
}
return $first_priority <=> $second_priority;
}
/**
* @param array $missions Mission rows.
* @return array Sorted mission rows.
*/
function ogSnippetSpaceshipOperator(array $missions): array {
usort($missions, 'ogSnippetSpaceshipPriorityCompare');
return $missions;
}
$missions = ogSnippetSpaceshipOperator(array(
array('name' => 'Acheron sweep', 'priority' => 30),
array('name' => 'Tycho repair', 'priority' => 10)
));
echo 'First priority mission: '.$missions[0]['name'];