Como ordenar um array em PHP?
A ordenação de arrays é uma funcionalidade essencial para organizar dados em listas de produtos, classificações e outros cenários. O PHP oferece diversas funções para ordenar arrays numéricos e associativos.
Ordenando um array numérico com sort()
A função sort()
ordena um array em ordem crescente:
<?php
$numeros = [5, 3, 9, 1, 7];
sort($numeros);
print_r($numeros);
?>
Saída:
Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 7 [4] => 9 )
Ordenando em ordem decrescente com rsort()
Se precisarmos da ordem inversa, usamos rsort()
:
<?php
$numeros = [5, 3, 9, 1, 7];
rsort($numeros);
print_r($numeros);
?>
Isso organizará os números de forma decrescente.
Ordenando arrays associativos com asort()
A função asort()
mantém a associação entre chave e valor ao ordenar:
<?php
$idades = ["Ana" => 25, "Carlos" => 30, "Beatriz" => 20];
asort($idades);
print_r($idades);
?>
Os valores são ordenados, mas as chaves mantêm sua relação original.
Ordenando com critérios personalizados usando usort()
Para ordenar com uma lógica personalizada, usamos usort()
:
<?php
$pessoas = [
["nome" => "Carlos", "idade" => 30],
["nome" => "Ana", "idade" => 25],
["nome" => "Beatriz", "idade" => 20]
];
usort($pessoas, function($a, $b) {
return $a["idade"] <=> $b["idade"];
});
print_r($pessoas);
?>
Aqui, ordenamos um array multidimensional pela idade das pessoas.
Quando usar sort(), rsort(), asort() e usort() no PHP?
Ordenar arrays no PHP é essencial para trabalhar com dados estruturados de maneira eficiente. A escolha da função correta depende do tipo de array e do critério de ordenação desejado. Enquanto sort()
e rsort()
são úteis para listas simples, asort()
e usort()
permitem ordenações mais complexas, como em arrays associativos e multidimensionais.
Algumas aplicações:
- Ordenação de listas de produtos por preço ou nome
- Classificação de rankings e pontuações
- Organização de arrays associativos mantendo suas chaves
- Ordenação personalizada em arrays multidimensionais
Dicas para quem está começando
- Use
sort()
para ordenar arrays simples de forma crescente. - Para ordenar em ordem decrescente, utilize
rsort()
. - Se precisar manter a associação entre chaves e valores, prefira
asort()
ouarsort()
. - Para ordenações personalizadas,
usort()
permite definir regras específicas. - Teste sempre sua ordenação imprimindo o array com
print_r()
antes e depois da execução.
Contribuições de Daniel Moreira