Сортирует массив по ключам пользовательской функцией сравнения

# uksort

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

uksort — Сортирует массив по ключам пользовательской функцией сравнения

### Описание

function uksort(array `&$array`, callable `$callback`): true

На месте сортирует массив (`array`) по ключам, для чего использует пользовательскую функцию сравнения, которая и определяет порядок.

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

> Замечание: Функция сбрасывает внутренний указатель массива на первый элемент.

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

`array`

  Входной массив.

`callback`
  Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
  function callback(mixed `$a`, mixed `$b`): int
  Предостережение

  При возврате из функции сравнения нецелых значений наподобие float PHP внутренне приведёт значение, которое возвращает callback-функции, к типу int. Поэтому значения наподобие `0.99` и `0.1` приводятся к целочисленному значению `0` и сравниваются как равные.

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

Функция возвращает логическое значение `true`.

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

Версия | Описание
--- | ---
8.2.0 | Вместо общего логического типа bool теперь возвращается конкретный тип `true`.
8.0.0 | Функция теперь выдаст ошибку уровня `E_WARNING`, если параметр `callback`-функции ожидает передачу значения по ссылке.

### Примеры

Пример #1 Пример использования функции uksort()

    <?php

    function cmp($a, $b)
    {
        $a = preg_replace('@^(a|an|the) @', '', $a);
        $b = preg_replace('@^(a|an|the) @', '', $b);
        return strcasecmp($a, $b);
    }

    $a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

    uksort($a, "cmp");

    foreach ($a as $key => $value) {
        echo "$key: $value\n";
    }

    ?>

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

    an apple: 3
    a banana: 4
    the Earth: 2
    John: 1

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

- usort() - Сортирует массив по значениям через пользовательскую функцию сравнения элементов
- uasort() - Сортирует массив пользовательской функцией сравнения, сохраняя ассоциацию индексов
- Сравнение функций сортировки массивов

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