(PHP 5 >= 5.2.0, PHP 7, PHP 8)
ArrayObject::uksort — Сортировать массив по ключам, используя пользовательскую функцию для сравнения
Эта функция сортирует ключи записей, используя предоставленную пользователем функцию. Отношения между ключами и элементами сохраняются.
Замечание:
Функция сохраняет первоначальный порядок элементов, если при сравнении значения двух элементов равны. До PHP 8.0.0 взаимный порядок одинаковых по значению элементов в отсортированном массиве оставался неопределённым.
callbackФункция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
Функция возвращает логическое значение true.
| Версия | Описание |
|---|---|
| 8.2.0 |
Вместо общего логического типа bool теперь возвращается конкретный тип true.
|
Пример #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