W3docs

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 normalmente
  • SORT_NUMERIC - compara os itens numericamente
  • SORT_STRING - compara os itens como strings
  • SORT_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:

  1. Ordenando um array de strings usando asort():

Exemplos de asort()

php— editable, runs on the server
  1. Ordenando um array de inteiros usando asort():

Ordenando um array de inteiros usando asort()

php— editable, runs on the server
  1. Ordenando um array associativo usando asort():

PHP Ordenando um array associativo usando asort()

php— editable, runs on the server

Armadilhas comuns

  • Use SORT_NUMERIC para strings numéricas. Com o SORT_REGULAR padrão, valores como "10" e "9" podem ser comparados como strings, colocando "10" antes de "9". Passe SORT_NUMERIC quando 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() — como asort(), 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.

Prática

Prática
O que a função asort() faz em PHP?
O que a função asort() faz em PHP?
Was this page helpful?