PHP 8.4.1 Released!

Ds\Map::ksorted

(No version information available, might only be in Git)

Ds\Map::ksortedRenvoie une copie, triée par clé

Description

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

Renvoie une copie triée par clé, en utilisant une fonction comparator facultative.

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 clé.

Exemples

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

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

print_r($map->ksorted());
?>

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

Ds\Map Object
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
        )

)

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

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

// Renverse
$sorted = $map->ksorted(function($a, $b) {
return
$b <=> $a;
});

print_r($sorted);
?>

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

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
        )

)
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top