O operador nave espacial permite comparação direta de
valores compostos atráves de múltiplos eixos. O exemplo a seguir irá ordenar
$pessoas
pelo último nome, e depois pelo primeiro nome se
o último nome for igual.
<?php
$pessoas[0] = ['primeiro' => 'Adam', 'ultimo' => 'West'];
$pessoas[1] = ['primeiro' => 'Alec', 'ultimo' => 'Baldwin'];
$pessoas[2] = ['primeiro' => 'Adam', 'ultimo' => 'Baldwin'];
function sorter(array $a, array $b) {
return [$a['ultimo'], $a['primeiro']] <=> [$b['ultimo'], $b['primeiro']];
}
usort($pessoas, 'sorter');
foreach ($pessoas as $pessoa) {
print $pessoa['ultimo'] . ', ' . $pessoa['primeiro'] . PHP_EOL;
}
?>
O exemplo acima produzirá:
Baldwin, Adam
Baldwin, Alec
West, Adam