Ordenación de arrays

PHP dispone de numerosas funciones para ordenar arrays, y esta sección del manual va a ayudar a comprenderlas.

Las diferencias principales son:

  • Algunos de los ordenamientos de array están basados en las claves, mientras que otros están basados en los valores: $array['clave'] = 'valor';
  • Algunos ordenamientos mantienen la correlación entre las claves y los valores, y otros no, lo que significa que las claves suelen ser reasignadas numéricamente (0,1,2 ...)
  • El orden de la ordenación puede ser: alfabético, ascendente, descendente, numérico, natural, aleatorio, o definido por el usuario.
  • Nota: todas estas funciones de ordenación trabajan sobre el array mismo, a diferencia de la práctica normal que sería devolver el array ordenado.
  • Si una de estas funciones de ordenación evalúa 2 miembros como iguales, entonces conservan el orden original. Anterior a PHP 8.0.0, su orden era indefinido (la ordenación no era estable).

Atributos de funciones de ordenación
Nombre de la función Ordenación por Asociación clave-valor Orden de ordenación Funciones asociadas
array_multisort() valor claves string sí, claves int no primer array, o bien opciones de ordenación array_walk()
asort() valor ascendente arsort()
arsort() valor descendente asort()
krsort() clave descendente ksort()
ksort() clave ascendente asort()
natcasesort() valor natural, insensible a la casilla natsort()
natsort() valor natural natcasesort()
rsort() valor no descendente sort()
shuffle() valor no aleatorio array_rand()
sort() valor no ascendente rsort()
uasort() valor Definido por una función de usuario uksort()
uksort() clave Definido por una función de usuario uasort()
usort() valor no Definido por una función de usuario uasort()