Maison >développement back-end >tutoriel php >Comment puis-je trier des tableaux multidimensionnels en PHP par une ou plusieurs clés ?

Comment puis-je trier des tableaux multidimensionnels en PHP par une ou plusieurs clés ?

DDD
DDDoriginal
2025-01-05 12:34:43943parcourir

How can I sort multi-dimensional arrays in PHP by one or more keys?

Tri des tableaux multidimensionnels par valeur

Lorsque vous travaillez avec des tableaux multidimensionnels, il peut être nécessaire de trier le tableau en fonction de la valeur d'une clé spécifique. Par exemple, si vous disposez d'un tableau contenant une liste d'images, vous souhaiterez peut-être les trier par date ou par taille.

Tri par une seule clé

Pour trier un tableau par une seule clé clé, vous pouvez utiliser la fonction usort(). Cette fonction prend deux paramètres : le tableau à trier et une fonction de tri. La fonction de tri doit prendre deux paramètres, qui représentent les deux éléments à comparer.

Par exemple, disons que nous avons le tableau suivant, et que nous voulons le trier par la valeur de la clé "order":

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
        )
)

Pour trier ce tableau, on peut utiliser la fonction de tri suivante :

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

Ensuite, on peut passer cette fonction au Fonction usort() :

usort($myArray, 'sortByOrder');

Après le tri, le tableau sera trié par la valeur de la clé "order":

Array
(
    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )

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

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

Tri par plusieurs clés

Pour trier un tableau par plusieurs clés, vous pouvez utiliser l'approche suivante :

  1. Créez une fonction de tri qui compare les valeurs de la première clé.
  2. Si les valeurs de la première clé sont égales, comparez les valeurs de la deuxième clé.
  3. Continuez à comparer les valeurs des clés suivantes jusqu'à ce qu'une différence soit trouvée.

Par exemple, disons que nous avons le tableau suivant et que nous voulons le trier par la valeur de la clé "order", puis par la valeur du "title" clé :

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

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

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

    [3] => Array
        (
            [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb
            [title] => Ready
            [order] => 3
        )
)

Pour trier ce tableau, nous pouvons utiliser la fonction de tri suivante :

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