Сортировать массив, используя алгоритм "natural order"

# ArrayObject::natsort

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

ArrayObject::natsort — Сортировать массив, используя алгоритм "natural order"

### Описание

public function ArrayObject::natsort(): true

Этот метод реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека, сохраняя при этом связь ключ/значение. Такой алгоритм называется "естественный порядок" (natural ordering). Пример разницы между этим алгоритмом и обычными алгоритмами сортировки, (используются в ArrayObject::asort) можно увидеть в примере ниже.

> Замечание: Функция сохраняет первоначальный порядок элементов, если при сравнении значения двух элементов равны. До PHP 8.0.0 взаимный порядок одинаковых по значению элементов в отсортированном массиве оставался неопределённым.

### Список параметров

Сигнатура функции не содержит параметров.

### Возвращаемые значения

Функция не возвращает значения после выполнения.

### Список изменений

Версия | Описание
--- | ---
8.2.0 | Вместо общего логического типа bool теперь возвращается конкретный тип `true`.

### Примеры

Пример #1 Пример использования ArrayObject::natsort()

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

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

    $arr1->asort();
    echo "Стандартная сортировка\n";
    var_dump($arr1);

    $arr2->natsort();
    echo "\nСортировка в естественном порядке\n";
    var_dump($arr2);
    ?>

Результат выполнения приведённого примера:

    Стандартная сортировка
    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"
      }
    }

    Сортировка в естественном порядке
    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"
      }
    }

Для более подробной информации смотрите страницу Мартина Пула (Martin Pool) » Natural Order String Comparison.

### Смотрите также

- ArrayObject::asort() - Сортировать записи по значению
- ArrayObject::ksort() - Сортировать записи по ключам
- ArrayObject::natcasesort() - Сортировать массив, используя регистронезависимый алгоритм "natural order"
- ArrayObject::uasort() - Сортировать записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
- ArrayObject::uksort() - Сортировать массив по ключам, используя пользовательскую функцию для сравнения
- natsort() - Сортирует массив алгоритмом «естественного упорядочивания»

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