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).
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() |