Maison > développement back-end > tutoriel php > Comment trier un tableau multidimensionnel par valeur en PHP ?

Comment trier un tableau multidimensionnel par valeur en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-23 12:21:11
original
894 Les gens l'ont consulté

How to Sort a Multi-dimensional Array by Value in PHP?

Tri d'un tableau multidimensionnel par valeur

Dans un tableau multidimensionnel, vous pouvez rencontrer le besoin de trier ses éléments en fonction de la valeur d'une clé spécifique. Par exemple, considérons le tableau suivant :

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)
Copier après la connexion

Tri par la clé « ordre »

Pour trier le tableau par la clé « ordre », vous pouvez utiliser la fonction usort(). Voici une description complète de son utilisation :

PHP 5.2 ou version antérieure :

Définissez d'abord une fonction de tri :

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}
Copier après la connexion

PHP 5.3 et versions ultérieures :

Utilisez un nom anonyme fonction :

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

PHP 7 :

Utiliser l'opérateur du vaisseau spatial :

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});
Copier après la connexion

PHP 7.4 :

Utiliser une flèche function :

usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
Copier après la connexion

Tri multidimensionnel :

Pour le tri multidimensionnel, modifiez la fonction de tri pour référencer les éléments de tri suivants si le premier élément est zéro. Par exemple :

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
        if ($retval == 0) {
            $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
        }
    }
    return $retval;
});
Copier après la connexion

Associations de clés

Si vous devez conserver des associations de clés, utilisez uasort() au lieu de usort().

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal