uksort

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

uksortSort an array by keys using a user-defined comparison function

Опис

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

Sorts array in place by keys using a user-supplied comparison function to determine the order.

Зауваження:

Якщо два члени порівняння однакові, їхній порядок зберігається. До PHP 8.0.0, їхній відносний порядок у впорядкованому масиві був невизначеним.

Зауваження:

Скидає внутрішній вказівник масиву на перший елемент.

Параметри

array

The input array.

callback

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

callback(mixed $a, mixed $b): int
Застереження

Якщо функція порівняння повертає не цілі значення, такі як float, вони будуть приведені до типу int під час повернення з функції зворотнього виклику. Тож значення, схожі на 0.99 або 0.1 будуть приведені до цілого 0, отже члени порівняння вважатимуться однаковими.

Значення, що повертаються

Завжди повертає true.

Журнал змін

Версія Опис
8.2.0 Тепер повертається значення типу true. До цього був bool.
8.0.0 Тепер функція видасть E_WARNING, якщо callback очікує параметр за посиланням.

Приклади

Приклад #1 uksort() example

<?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

Прогляньте також