Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort Sorts the map in-place by key

説明

public Ds\Map::ksort(callable $comparator = ?): void

Sorts the map in-place by key, using an optional comparator function.

パラメータ

comparator

比較関数は、最初の引数と二番目の引数の比較結果を返します。最初の引数のほうが二番目の引数より大きい場合は正の数を、二番目の引数と等しい場合はゼロを、そして二番目の引数より小さい場合は負の数を返す必要があります。

callback(mixed $a, mixed $b): int
警告

Returning non-integer values from the comparison function, such as float, will result in an internal cast to int of the callback's return value. So values such as 0.99 and 0.1 will both be cast to an integer value of 0, which will compare such values as equal.

戻り値

値を返しません。

例1 Ds\Map::ksort() example

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

print_r($map);
?>

上の例の出力は、 たとえば以下のようになります。

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
        )

)

例2 Ds\Map::ksort() example using a comparator

<?php
$map 
= new \Ds\Map([=> "x"=> "y"=> "z"]);

// Reverse
$map->ksort(function($a$b) {
    return 
$b <=> $a;
});

print_r($map);
?>

上の例の出力は、 たとえば以下のようになります。

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
        )

)
関連キーワード:  Ds, key, Map, Object, Sorts, map, Pair, the, in, ksort