(PECL ds >= 1.0.0)
Ds\Map::sort — Сортирует коллекцию по значениям
Сортирует коллекцию по значениям, необязательно используя callback-функцию
comparator
.
comparator
Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
Возвращение нецелых значений из функции сравнения,
таких как число с плавающей точкой (float), приведёт к внутреннему
приведению возвращаемого значения callback-функции к целому числу (int).
Таким образом, значения 0.99
и 0.1
будут
приведены к целочисленному значению 0
,
что позволит сравнить эти значения как равные.
Функция не возвращает значения после выполнения.
Пример #1 Пример использования Ds\Map::sort()
<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort();
print_r($map);
?>
Вывод приведённого примера будет похож на:
Ds\Map Object ( [0] => Ds\Pair Object ( [key] => c [value] => 1 ) [1] => Ds\Pair Object ( [key] => a [value] => 2 ) [2] => Ds\Pair Object ( [key] => b [value] => 3 ) )
Пример #2 Пример использования Ds\Map::sort() с callback-функцией сравнения
<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort(function($a, $b) {
return $b <=> $a;
});
print_r($map);
?>
Вывод приведённого примера будет похож на:
Ds\Map Object ( [0] => Ds\Pair Object ( [key] => b [value] => 3 ) [1] => Ds\Pair Object ( [key] => a [value] => 2 ) [2] => Ds\Pair Object ( [key] => c [value] => 1 ) )