Ordena los elementos con un tri natural

# ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::natsort — Ordena los elementos con un tri natural

### Descripción

public function ArrayObject::natsort(): true

Este método implementa un algoritmo de ordenación que coloca las strings alfanuméricas en el mismo orden que un humano utilizaría, manteniendo la correlación entre las claves y los valores. Esto se denomina tri natural. Por ejemplo, el tri natural se distingue del tri informático, tal como se utiliza en ArrayObject::asort, como se ilustra a continuación.

> Nota: Si dos miembros se comparan como iguales, mantienen su orden original. Anterior a PHP 8.0.0, su orden relativo en el array ordenado no está definido.

### Parámetros

Esta función no contiene ningún parámetro.

### Valores devueltos

No se retorna ningún valor.

### Historial de cambios

Versión | Descripción
--- | ---
8.2.0 | El tipo de retorno es ahora `true`, anteriormente era bool.

### Ejemplos

Ejemplo #1 Ejemplo con ArrayObject::natsort()

    <?php
    $array = array("img12.png", "img10.png", "img2.png", "img1.png");

    $arr1 = new ArrayObject($array);
    $arr2 = clone $arr1;

    $arr1->asort();
    echo "Tri estándar\n";
    var_dump($arr1);

    $arr2->natsort();
    echo "\nTri en orden natural\n";
    var_dump($arr2);
    ?>

El ejemplo anterior mostrará:

    Tri estándar
    object(ArrayObject)#1 (1) {
      ["storage":"ArrayObject":private]=>
      array(4) {
        [3]=>
        string(8) "img1.png"
        [1]=>
        string(9) "img10.png"
        [0]=>
        string(9) "img12.png"
        [2]=>
        string(8) "img2.png"
      }
    }

    Tri en orden natural
    object(ArrayObject)#2 (1) {
      ["storage":"ArrayObject":private]=>
      array(4) {
        [3]=>
        string(8) "img1.png"
        [2]=>
        string(8) "img2.png"
        [1]=>
        string(9) "img10.png"
        [0]=>
        string(9) "img12.png"
      }
    }

Para más información, véase el sitio de Martin Pool » `Natural Order String Comparison`.

### Ver también

- ArrayObject::asort() - Ordena los elementos por valor
- ArrayObject::ksort() - Ordena un array por clave
- ArrayObject::natcasesort() - Ordena un array utilizando el ordenamiento natural sin distinción de mayúsculas y minúsculas
- ArrayObject::uasort() - Ordena los elementos con una función de usuario
- ArrayObject::uksort() - Ordena los elementos por clave con una función utilitaria
- natsort() - Ordena un array con el algoritmo de "orden natural"

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open