Função usort
A função usort ordena um array
por valor dos elementos, usando para
isso um callback para determinar a ordem
dos elementos no array ordenado.
A função modifica o próprio array.
A função de comparação deve retornar um número inteiro, que dependendo do resultado da comparação: menor, igual ou maior que zero.
Sintaxe
usort(array &$array, callable $callback): bool
Exemplo
Vamos ordenar o array em ordem crescente dos elementos:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a < $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Resultado da execução do código:
[1, 2, 3, 4, 5]
Exemplo
E agora vamos ordenar o array em ordem decrescente dos elementos:
<?php
$arr = [1, 3, 2, 5, 4];
function func($a, $b)
{
if ($a === $b) {
return 0;
} else if ($a > $b) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Resultado da execução do código:
[1, 2, 3, 4, 5]
Exemplo
E agora vamos ordenar o array por crescente quantidade de caracteres nos elementos do array:
<?php
$arr = [
'123',
'1',
'12345',
'12',
'1234',
];
function func($a, $b)
{
if (strlen($a) === strlen($b)) {
return 0;
} else if (strlen($a) < strlen($b)) {
return -1;
} else {
return 1;
}
}
usort($arr, 'func');
var_dump($arr);
?>
Resultado da execução do código:
[
'1',
'12',
'123',
'1234',
'12345',
]
Veja também
-
a função
sort,
que ordena em ordem crescente dos elementos -
a função
rsort,
que ordena em ordem decrescente dos elementos -
a função
ksort,
que ordena em ordem crescente das chaves -
a função
krsort,
que ordena em ordem decrescente das chaves -
a função
asort,
que ordena em ordem crescente dos elementos preservando as chaves -
a função
arsort,
que ordena em ordem decrescente dos elementos preservando as chaves -
a função
natsort,
que ordena de forma natural -
a função
natcasesort,
que ordena de forma natural sem diferenciar maiúsculas e minúsculas -
a função
usort,
que ordena por callback -
a função
uksort,
que ordena por callback pelas chaves -
a função
uasort,
que ordena por callback preservando as chaves -
a função
array_multisort,
que ordena múltiplos arrays