Ordenando Arrays
O PHP tem muitas funções para lidar com ordenação de arrays, e esse documento existe para ajudar a você 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, menor para maior (ascendente), maior para menor (descendente), numérica, 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 a ordem será 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 | associativo sim, numérico não | primeiro array ou opções de ordenação | array_walk() |
| asort() | valor | sim | menor para maior | arsort() |
| arsort() | valor | sim | maior para menor | asort() |
| krsort() | chave | sim | maior para menor | ksort() |
| ksort() | chave | sim | menor para maior | asort() |
| natcasesort() | valor | sim | natural, não sensível a maiúsculas | natsort() |
| natsort() | valor | sim | natural | natcasesort() |
| rsort() | valor | não | maior para menor | 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() |