Ordenando Arrays

O PHP tem muitas funções para lidar com ordenação de arrays, e esse documento existe para ajudar o desenvolvedor a lidar com elas.

As principais diferenças são:

  • Algumas ordenam com base nas chaves do array, enquanto outras pelos valores: $array['chave'] = 'valor';
  • A correlação entre as chaves e os valores do array não são mantidas depois da ordenação, o que pode fazer com que as chaves sejam resetadas numericamente (0, 1, 2, ...)
  • A ordem da ordenação: alfabética, ascendente (menor para maior), descendente (maior para menor), natural, aleatório, ou definida pelo usuário
  • Nota: Todas essas funções agem diretamente na própria variável do array, ao invés de retornar um novo array ordenado
  • Se qualquer uma dessas funções avaliar dois membros como iguais então eles retém sua ordem original. Antes do PHP 8.2.0, sua ordem eram indefinida (a ordenação não é estável).

Atributos das funções de ordenação
Nome da função Ordena por Mantém a associação de chaves Ordem da ordenação Funções relacionadas
array_multisort() valor string chaves sim, int chaves não primeiro array ou opções de ordenação array_walk()
asort() valor sim ascendente arsort()
arsort() valor sim descendente asort()
krsort() chave sim descendente ksort()
ksort() chave sim ascendente krsort()
natcasesort() valor sim natural, não sensível a maiúsculas natsort()
natsort() valor sim natural natcasesort()
rsort() valor não descendente sort()
shuffle() valor não random array_rand()
sort() valor não menor para maior rsort()
uasort() valor sim definido pelo usuário uksort()
uksort() chave sim definido pelo usuário uasort()
usort() valor não definido pelo usuário uasort()