# Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Returns a copy, sorted by value

### Beschreibung

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

Returns a copy, sorted by value using an optional `comparator` function.

### Parameter-Liste

`comparator`

  Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

  callback(mixed `$a`, mixed `$b`): int
  Achtung

  Wenn die Vergleichsfunktion nicht-ganzzahlige Werte zurückgibt, z. B. vom Typ float, wird der Rückgabewert des Callbacks intern in den Typ int umgewandelt. Werte wie `0.99` und `0.1` werden also beide in einen Integer-Wert von `0` umgewandelt, wodurch diese Werte als gleichwertig eingestuft werden.

### Rückgabewerte

Returns a copy of the map, sorted by value.

### Beispiele

Beispiel #1 Ds\Map::sort() example

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

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    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
            )

    )

Beispiel #2 Ds\Map::sort() example using a comparator

`<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
// Reverse
$sorted = $map->sorted(function($a, $b) {
return $b <=> $a;
});
print_r($sorted);
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    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