Even if documentation says that $cmp_function must be a string, this method works with a Callable also.
Example:
<?php
$iterator->uasort([$this, 'usort']); // 'usort' here is a method in the same class
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
ArrayIterator::uasort — Сортировка с помощью заданной пользователем функции и сохранением ключей
Сортирует записи в массиве по значениям, используя функцию сортировки, определённую пользователем и сохраняя связь ключ-значение.
Замечание:
Функция сохраняет первоначальный порядок элементов, если при сравнении значения двух элементов равны. До PHP 8.0.0 порядок элементов в отсортированном массиве оставался неопределённым.
callback
Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
Возвращение нецелых значений из функции сравнения,
таких как число с плавающей точкой (float), приведёт к внутреннему
приведению возвращаемого значения callback-функции к целому числу (int).
Таким образом, значения 0.99
и 0.1
будут
приведены к целочисленному значению 0
,
что позволит сравнить эти значения как равные.
Функция всегда возвращает true
.
Even if documentation says that $cmp_function must be a string, this method works with a Callable also.
Example:
<?php
$iterator->uasort([$this, 'usort']); // 'usort' here is a method in the same class