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