(PECL ds >= 1.0.0)
Ds\Map::ksort — Sorts the map in-place by key
Sorts the map in-place by key, 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.
Es wird kein Wert zurückgegeben.
Beispiel #1 Ds\Map::ksort() example
<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);
$map->ksort();
print_r($map);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Ds\Map Object ( [0] => Ds\Pair Object ( [key] => a [value] => 1 ) [1] => Ds\Pair Object ( [key] => b [value] => 2 ) [2] => Ds\Pair Object ( [key] => c [value] => 3 ) )
Beispiel #2 Ds\Map::ksort() example using a comparator
<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);
// Reverse
$map->ksort(function($a, $b) {
return $b <=> $a;
});
print_r($map);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Ds\Map Object Ds\Map Object ( [0] => Ds\Pair Object ( [key] => 2 [value] => y ) [1] => Ds\Pair Object ( [key] => 1 [value] => x ) [2] => Ds\Pair Object ( [key] => 0 [value] => z ) )