(PECL ds >= 1.0.0)
Ds\Map::sorted — Returns a copy, sorted by value
Returns a copy, sorted by value using an optional comparator
function.
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.
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.
Returns a copy of the map, sorted by value.
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 ) )