# Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Renvoie une copie, triée par valeur

### Description

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

Renvoie une copie, triée par valeur en utilisant une fonction `comparator` optionnelle.

### Liste de paramètres

`comparator`

  La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second.

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

  Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que `0.99` et `0.1` seront toutes deux converties en une valeur entière de `0`, ce qui comparera de telles valeurs comme égales.

### Valeurs de retour

Renvoie une copie de la carte, triée par valeur.

### Exemples

Exemple #1 Exemple de Ds\Map::sort()

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

Résultat de l'exemple ci-dessus est similaire à :

    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
            )

    )

Exemple #2 Exemple de Ds\Map::sort() utilisant un comparateur

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

Résultat de l'exemple ci-dessus est similaire à :

    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
            )

    )