PHP Conference Nagoya 2025

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sortedRenvoie une copie, triée par valeur

Description

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

Renvoie une copie, triée par valeur en utilisant une fonction comparator optionnelle.

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 valeur.

Exemples

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
        )

)
add a note

User Contributed Notes

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