Ordenamiento de arrays
PHP tiene varias funciones que se ocupan de ordenar arrays (matrices) y este documento existe para ayudar a aclararlo todo.
Las principales diferencias son:
- Algunas ordenan basados en las key de la array, mientras que otras por los valores: $array['key'] = 'valor';
- Si se mantiene o no la correlación entre las key y los valores después de la clasificación, lo cual puede significar que las key se restablecen numéricamente (0,1,2 ...)
- El orden de la clasificación: alfabético, de menor a mayor (ascendente), de mayor a menor (descendente), numérico, natural, aleatorio o definido por el usuario
- Nota: Todas estas funciones de clasificación actúan directamente sobre la variable de array misma, en lugar de devolver un nuevo array ordenado.
- Si alguna de estas funciones de clasificación evalúa a dos miembros como iguales, entonces el orden no queda definido (la clasificación no es estable).
| Nombre de la función | Ordena por | Mantiene asociación con las key | Orden de la clasificación | Funciones relacionadas |
|---|---|---|---|---|
| array_multisort() | valor | sí si es asociativa, no si es númerica | primer array u opciones de clasificación | array_walk() |
| asort() | valor | sí | menor a mayor | arsort() |
| arsort() | valor | sí | mayor a menor | asort() |
| krsort() | key | sí | mayor a menor | ksort() |
| ksort() | key | sí | menor a mayor | asort() |
| natcasesort() | valores | sí | natural, insensible a mayúsculas y minúsculas | natsort() |
| natsort() | valor | sí | natural | natcasesort() |
| rsort() | valor | no | mayor a menor | sort() |
| shuffle() | valor | no | aleatorio | array_rand() |
| sort() | valor | no | menor a mayor | rsort() |
| uasort() | valor | sí | definido por el usuario | uksort() |
| uksort() | key | sí | definido por el usuario | uasort() |
| usort() | valor | no | definido por el usuario | uasort() |