Aller au contenu

uasort()

Trier des tableaux en PHP avec uasort()

Au cœur de la plupart des tâches de programmation se trouve le besoin de trier des données. Trier des données vous permet de les accéder et de les afficher plus efficacement, ce qui peut vous faire gagner du temps et des ressources à long terme. En PHP, vous pouvez trier des tableaux à l'aide de la fonction intégrée uasort().

Dans cet article, nous explorerons la fonction uasort(), sa syntaxe et les différents paramètres qu'elle accepte. Nous plongerons également en profondeur dans l'utilisation de cette fonction pour trier des tableaux en PHP, et fournirons des exemples d'applications pratiques de cette fonction puissante.

Qu'est-ce que uasort() ?

uasort() est une fonction PHP intégrée utilisée pour trier des tableaux selon une méthode définie par l'utilisateur. Elle trie un tableau en appliquant une fonction de comparaison définie par l'utilisateur à chaque élément, tout en préservant la relation entre les clés et les valeurs. La fonction réorganise ensuite les éléments du tableau en fonction du résultat de la fonction de comparaison.

Cette fonction est particulièrement utile lorsque vous devez trier des tableaux associatifs ou multidimensionnels, car elle vous permet de spécifier quelles valeurs comparer et comment les comparer.

Syntaxe de uasort()

La syntaxe de uasort() est la suivante :

Syntaxe de uasort()

php
uasort(array &$array, callable $comparison_function): bool

Décomposons les différentes parties de cette syntaxe :

  • array &$array : Il s'agit du tableau à trier. Le symbole & avant la variable $array indique qu'il s'agit d'une référence au tableau original, ce qui signifie que toute modification apportée au tableau trié sera également reflétée dans le tableau original.
  • callable $comparison_function : Il s'agit de la fonction de comparaison à appliquer aux éléments du tableau. La fonction de comparaison doit prendre deux arguments, $a et $b, qui représentent les éléments à comparer. La fonction doit retourner un entier indiquant la relation entre $a et $b.
  • bool : Il s'agit du type de retour de la fonction uasort(). Elle retourne true en cas de succès et false en cas d'échec.

Paramètres de la fonction de comparaison

La fonction de comparaison utilisée dans uasort() doit retourner un entier indiquant la relation entre deux valeurs. La fonction doit prendre deux arguments, $a et $b, qui représentent les éléments à comparer. La valeur de retour doit être la suivante :

  • Si $a est supérieur à $b, la fonction doit retourner un entier positif.
  • Si $a est égal à $b, la fonction doit retourner 0.
  • Si $a est inférieur à $b, la fonction doit retourner un entier négatif.

Exemples de uasort()

Explorons quelques exemples d'utilisation de uasort() pour trier des tableaux en PHP.

Exemple 1 : Tri d'un tableau simple

Supposons que nous ayons le tableau suivant :

Un tableau PHP

php
$array = array(3, 1, 4, 1, 5, 9, 2, 6, 5, 3);

Pour trier ce tableau en ordre croissant, nous pouvons utiliser la fonction de comparaison suivante :

Tri d'un tableau en PHP

php
function compare($a, $b) {
    return ($a < $b) ? -1 : 1;
}

Nous pouvons ensuite appeler la fonction uasort() comme suit :

Tri d'un tableau simple à l'aide de la fonction uasort()

php
<?php

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];

function compare($a, $b)
{
    return $a < $b ? -1 : 1;
}

uasort($array, "compare");

print_r($array);

Cela triera le tableau en ordre croissant, comme suit :


console
Array
(
    [3] => 1
    [1] => 1
    [6] => 2
    [9] => 3
    [0] => 3
    [2] => 4
    [8] => 5
    [4] => 5
    [7] => 6
    [5] => 9
)

Exemple 2 : Tri d'un tableau associatif par valeur

Supposons que nous ayons le tableau associatif suivant :

Un tableau associatif PHP

php
$array = array(
    "John" => 32,
    "Mary" => 28,
    "Bob" => 45,
    "Jane" => 28,
    "David" => 37
);

Pour trier ce tableau par valeur en ordre croissant, nous pouvons utiliser la fonction de comparaison suivante :

Tri d'un tableau en PHP à l'aide d'une fonction de comparaison

php
function compare($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

Nous pouvons ensuite appeler la fonction uasort() comme suit :

Tri d'un tableau associatif par valeur à l'aide de la fonction uasort() en PHP

php
<?php

$array = [
    "John" => 32,
    "Mary" => 28,
    "Bob" => 45,
    "Jane" => 28,
    "David" => 37,
];

function compare($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return $a < $b ? -1 : 1;
}

uasort($array, "compare");

print_r($array);

Cela triera le tableau par valeur en ordre croissant, comme suit :


console
array(
    "Mary" => 28,
    "Jane" => 28,
    "John" => 32,
    "David" => 37,
    "Bob" => 45
);

Exemple 3 : Tri d'un tableau multidimensionnel par valeur

Supposons que nous ayons le tableau multidimensionnel suivant :

Un tableau multidimensionnel en PHP

php
<?php

$array = [["John", 32], ["Mary", 28], ["Bob", 45], ["Jane", 28], ["David", 37]];

Pour trier ce tableau par la deuxième valeur de chaque sous-tableau en ordre croissant, nous pouvons utiliser la fonction de comparaison suivante :

Tri d'un tableau par la deuxième valeur de chaque sous-tableau en PHP à l'aide d'une fonction de comparaison

php
function compare($a, $b) {
    if ($a[1] == $b[1]) {
        return 0;
    }
    return ($a[1] < $b[1]) ? -1 : 1;
}

Nous pouvons ensuite appeler la fonction uasort() comme suit :

Exemple de tri d'un tableau multidimensionnel par valeur en PHP

php
<?php

$array = [["John", 32], ["Mary", 28], ["Bob", 45], ["Jane", 28], ["David", 37]];

function compare($a, $b) {
    if ($a[1] == $b[1]) {
        return 0;
    }
    return ($a[1] < $b[1]) ? -1 : 1;
}

uasort($array, "compare");

print_r($array);

Cela triera le tableau par la deuxième valeur de chaque sous-tableau en ordre croissant, comme suit :


console
Array
(
    [1] => Array
        (
            [0] => Mary
            [1] => 28
        )

    [3] => Array
        (
            [0] => Jane
            [1] => 28
        )

    [0] => Array
        (
            [0] => John
            [1] => 32
        )

    [4] => Array
        (
            [0] => David
            [1] => 37
        )

    [2] => Array
        (
            [0] => Bob
            [1] => 45
        )

)

Conclusion

Le tri des tableaux est une tâche essentielle dans de nombreuses applications de programmation, et PHP fournit une fonction puissante pour trier des tableaux selon une méthode définie par l'utilisateur. En utilisant la fonction uasort(), vous pouvez trier des tableaux en PHP en toute simplicité, y compris les tableaux associatifs et multidimensionnels. En comprenant la syntaxe et les paramètres de cette fonction, vous pouvez tirer parti de sa puissance pour trier efficacement les données dans vos applications PHP.

Pratique

Quelle est l'utilité de la fonction uasort() en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.