(PECL ds >= 1.0.0)
Ds\Map::sorted — Renvoie une copie, triée par valeur
Renvoie une copie, triée par valeur en utilisant une fonction comparator
optionnelle.
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.
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.
Renvoie une copie de la carte, triée par valeur.
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 ) )