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
Libérer: 2025-01-05 12:34:43
original
915 Les gens l'ont consulté

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
        )
)
Copier après la connexion

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;
}
Copier après la connexion

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

usort($myArray, 'sortByOrder');
Copier après la connexion

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
        )
)
Copier après la connexion

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
        )
)
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal