ArrayObject::uksort

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

ArrayObject::uksortСортировать массив по ключам, используя пользовательскую функцию для сравнения

Описание

public ArrayObject::uksort(callable $callback): true

Эта функция сортирует ключи записей, используя предоставленную пользователем функцию. Отношения между ключами и элементами сохраняются.

Замечание:

Если оба сравниваемых значения эквивалентны, они сохраняют свой первоначальный порядок. До PHP 8.0.0 их относительный порядок в отсортированном массиве не был определён.

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

callback

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.

callback(mixed $a, mixed $b): int
Предостережение

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

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

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

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

Версия Описание
8.2.0 Тип возвращаемого значения теперь true; ранее было bool.

Примеры

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

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

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

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

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

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

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

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