Aprenda a Ordenar Arrays em PHP com a Função asort()
Saiba como usar a função asort() do PHP para ordenar arrays por valor em ordem crescente preservando as associações chave-valor, com sintaxe e exemplos.
Como desenvolvedor web, você pode se deparar com situações em que precisa manipular arrays no seu código PHP. Uma dessas operações é a ordenação do array. A função integrada asort() do PHP pode ser usada para ordenar um array pelos seus valores em ordem crescente. Neste artigo, vamos explorar como usar a função asort(), sua sintaxe e exemplos de como utilizá-la no seu código.
Sintaxe de asort()
A função asort() ordena um array pelos seus valores em ordem crescente, mantendo as associações chave-valor. A sintaxe da função é a seguinte:
Sintaxe da função asort
asort($array, $sorting_type);O primeiro argumento $array é o array a ser ordenado. O segundo argumento $sorting_type é opcional e especifica o tipo de ordenação. Os valores possíveis incluem:
SORT_REGULAR- compara os itens normalmenteSORT_NUMERIC- compara os itens numericamenteSORT_STRING- compara os itens como stringsSORT_LOCALE_STRING- compara os itens como strings com base na localidade atual
Se o parâmetro $sorting_type não for fornecido, SORT_REGULAR é usado por padrão. Note que asort() modifica o array original no lugar e retorna true em caso de sucesso ou false em caso de falha — ela não retorna um novo array ordenado, portanto não escreva $sorted = asort($array) esperando os dados ordenados em $sorted.
Quando usar asort()
O principal diferencial de asort() em relação ao simples sort() é que ela mantém cada valor associado à sua chave original. Use asort() quando as chaves carregam um significado que você não pode perder — por exemplo, um array associativo que mapeia nomes a pontuações, ids a preços ou nomes de usuário a timestamps de último acesso. Se você ordenar esse tipo de dado com sort(), o PHP descarta as chaves e reindexa o array como 0, 1, 2, …, quebrando a associação.
Recorra a sort() apenas quando o array for uma lista simples e as chaves forem apenas posições sem importância.
Exemplos de asort()
Aqui estão alguns exemplos que ilustram como usar a função asort() em PHP:
- Ordenando um array de strings usando
asort():
Exemplos de asort()
- Ordenando um array de inteiros usando
asort():
Ordenando um array de inteiros usando asort()
- Ordenando um array associativo usando
asort():
PHP Ordenando um array associativo usando asort()
Armadilhas comuns
- Use
SORT_NUMERICpara strings numéricas. Com oSORT_REGULARpadrão, valores como"10"e"9"podem ser comparados como strings, colocando"10"antes de"9". PasseSORT_NUMERICquando seus valores forem números (mesmo que armazenados como strings) para garantir uma ordenação numérica. - A ordenação não é estável antes do PHP 8.0. No PHP 8.0 e versões posteriores, elementos iguais mantêm sua ordem relativa original; em versões anteriores, a ordem era indefinida.
- Ela retorna um boolean, não o array. Como a ordenação ocorre no lugar, trate a variável original como o resultado.
Funções de ordenação relacionadas
PHP oferece uma família de funções de ordenação de arrays, cada uma preservando (ou descartando) as chaves de forma diferente e ordenando por valor ou por chave:
sort()— ordena por valor em ordem crescente, reindexa as chaves.rsort()— ordena por valor em ordem decrescente, reindexa as chaves.arsort()— comoasort(), mas em ordem decrescente, mantendo as associações de chaves.ksort()/krsort()— ordena por chave em ordem crescente / decrescente.usort()/uasort()— ordena com um callback de comparação personalizado.
Veja a visão geral de Ordenação de Arrays para uma comparação lado a lado.
Conclusão
A função asort() é uma ferramenta útil para ordenar arrays em PHP pelos seus valores em ordem crescente, mantendo as associações chave-valor. Ela se destaca sempre que suas chaves carregam significado — ordenar um array associativo de nomes a pontuações, ids a preços e similares — onde o simples sort() descartaria essas chaves. Ao entender sua sintaxe, os tipos de ordenação e as funções de ordenação relacionadas, você pode escolher a ferramenta certa para cada tarefa de ordenação e escrever um código PHP mais limpo.