PHP 8.0.12 Released!

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

ArrayObject::uasortTrie les éléments avec une fonction utilisateur

Description

public ArrayObject::uasort(callable $callback): bool

Cette fonction trie les éléments tout en conservant leur correlation avec la clé associée, en utilisant une fonction de comparaison utilisateur.

Cette fonction sert lors du tri de tableaux associatifs, où l'ordre des éléments est important.

Note:

Si deux membres se comparent comme égaux, ils maintiennent leur ordre original. Antérieur à PHP 8.0.0, leur ordre relatif dans le tableau trié n'est pas défini.

Liste de paramètres

callback

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

Valeurs de retour

Retourne toujours true.

Exemples

Exemple #1 Exemple avec ArrayObject::uasort()

<?php
// Fonction de comparaison
function cmp($a$b) {
    if (
$a == $b) {
        return 
0;
    }
    return (
$a $b) ? -1;
}

// Les tableaux à trier
$array = array('a' => 4'b' => 8'c' => -1'd' => -9'e' => 2'f' => 5'g' => 3'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Trie et affiche le tableau
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

L'exemple ci-dessus va afficher :

ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [a] => 4
            [b] => 8
            [c] => -1
            [d] => -9
            [e] => 2
            [f] => 5
            [g] => 3
            [h] => -4
        )

)
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [d] => -9
            [h] => -4
            [c] => -1
            [e] => 2
            [g] => 3
            [a] => 4
            [f] => 5
            [b] => 8
        )

)

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
0
poxetinho at gmail dot com
10 years ago
Note that return values between (-1, 1) are being considered as 0.
To Top