Возвращает отсортированную по значению копию коллекции

# Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции

### Описание

public function Ds\Map::sorted(callable `$comparator` = ?): Ds\Map

Возвращает отсортированную по значению копию коллекции, необязательно используя callback-функцию `comparator`.

### Список параметров

`comparator`
  Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
  function callback(mixed `$a`, mixed `$b`): int
  Предостережение

  При возврате из функции сравнения нецелых значений наподобие float PHP внутренне приведёт значение, которое возвращает callback-функции, к типу int. Поэтому значения наподобие `0.99` и `0.1` приводятся к целочисленному значению `0` и сравниваются как равные.

### Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

### Примеры

Пример #1 Пример использования Ds\Map::sort()

    <?php
    $map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

    print_r($map->sorted());
    ?>

Вывод приведённого примера будет похож на:

    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]);

    // Reverse
    $sorted = $map->sorted(function($a, $b) {
        return $b <=> $a;
    });

    print_r($sorted);
    ?>

Вывод приведённого примера будет похож на:

    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
            )

    )

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open