# sort

(PHP 4, PHP 5, PHP 7, PHP 8)

sort — Ordena un array

### Descripción

sort(array `&$array`, int `$sort_flags` = SORT_REGULAR): bool

Esta función ordena un array. Los elementos estarán ordenados de menor a mayor cuando la función haya terminado.

> Nota:

> Si dos miembros se comparan como iguales, su orden relativo en el array oredenado será indefinido.

### Parámetros

`array`

  El array de entrada.

`sort_flags`

  El segundo parámetro opcional `sort_flags` puede ser usado para modificar el modo de ordenación usando estos valores:

  Tipos de ordenación:

  - `SORT_REGULAR` - compara elementos normalmente (no cambia los tipos)
  - `SORT_NUMERIC` - compara elementos de forma numérica
  - `SORT_STRING` - compara elementos como cadenas
  - `SORT_LOCALE_STRING` - compara elementos como cadenas, basándose en la configuración regional en uso. Utiliza la configuración regional, la cual puede cambiarse usando setlocale().
  - `SORT_NATURAL` - compara elementos como cadenas usando el "orden natural" de la misma forma que natsort().
  - `SORT_FLAG_CASE` - se puede combinar (OR a nivel de bits) con `SORT_STRING` o `SORT_NATURAL` para ordenar cadenas de forma insensible a mayúsculas/minúsculas.

### Valores devueltos

Devuelve `true` en caso de éxito o `false` en caso de error.

### Historial de cambios

Versión | Descripción
--- | ---
5.4.0 | Se añadió el soporte para `SORT_NATURAL` y `SORT_FLAG_CASE` como `sort_flags`
5.0.2 | Se añadió `SORT_LOCALE_STRING`

### Ejemplos

Ejemplo #1 Ejemplo de sort()

`<?php
$frutas = array("limón", "naranja", "banana", "albaricoque");
sort($frutas);
foreach ($frutas as $clave => $valor) {
echo "frutas[" . $clave . "] = " . $valor . "\n";
}
?>`

El resultado del ejemplo sería:

    frutas[0] = albaricoque
    frutas[1] = banana
    frutas[2] = limón
    frutas[3] = naranja

Las frutas han sido ordenadas en orden alfabético.

Ejemplo #2 Ejemplo de sort() usando la ordenación insensible a mayúsculas/minúsculas natural

`<?php
$frutas = array(
"Naranja1", "naranja2", "Naranja3", "naranja20"
);
sort($frutas, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($frutas as $clave => $valor) {
echo "frutas[" . $clave . "] = " . $valor . "\n";
}
?>`

El resultado del ejemplo sería:

    frutas[0] = Naranja1
    frutas[1] = naranja2
    frutas[2] = Naranja3
    frutas[3] = naranja20

Las frutas han sido ordenadas de la misma forma que natcasesort().

### Notas

> Nota: Esta función asigna nuevas clave a los elemenos del `array`. Eliminará cualquier clave existente que haya sido asignada, en lugar de reordenar las claves.

> Nota: Como la mayoría de funciones de ordenación de PHP, sort() utiliza una implementación de » Quicksort. El pivote es elegido en la mitad de la partición resultando en un tiempo óptimo para los arrays ya ordenados. Aunque esto es un detalle de implementación con el que no debería contar.

Advertencia

Se ha de tener cuidado cuando se ordenen arrays con valores de tipos mixtos ya que sort() puede producir resultados impredecibles.

### Ver también

- asort() - Ordena un array y mantiene la asociación de índices
- comparación de funciones de orden de arrays