Maison >développement back-end >tutoriel php >Comment puis-je trier un tableau multidimensionnel en PHP à l'aide de « usort() » et « uasort() » ?

Comment puis-je trier un tableau multidimensionnel en PHP à l'aide de « usort() » et « uasort() » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 03:41:09546parcourir

How Can I Sort a Multi-Dimensional Array in PHP Using `usort()` and `uasort()`?

Tri d'un tableau multidimensionnel par valeur

De nombreuses situations surviennent lorsqu'il est nécessaire de trier un tableau multidimensionnel. Ceci peut être réalisé grâce à l'utilisation d'une fonction de comparaison définie par l'utilisateur dans la fonction usort().

Tri par une seule clé à l'aide de usort()

Pour trier le tableau donné par la valeur de la clé "order", nous pouvons définir une fonction de tri comme suit :

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}

usort($myArray, 'sortByOrder');

Alternativement, nous pouvons utiliser un anonyme fonction :

usort($myArray, function($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
});

Tri multidimensionnel

Cette approche peut être étendue pour trier des tableaux multidimensionnels. Par exemple, pour trier par « ordre » puis par « sous-ordre » :

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
    }
    return $retval;
});

Préserver les associations de clés avec uasort()

Si vous devez conserver les associations de clés , utilisez uasort(). Pour comparaison, reportez-vous à la comparaison du manuel des fonctions de tri de tableaux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn