Maison  >  Article  >  développement back-end  >  Méthode de tri de tableau bidimensionnel PHP (array_multisort usort)

Méthode de tri de tableau bidimensionnel PHP (array_multisort usort)

高洛峰
高洛峰original
2016-12-22 11:14:182245parcourir

Par exemple, un tableau comme celui-ci :

$users = array(
    array('name' => 'tom', 'age' => 20)
    , array('name' => 'anny', 'age' => 18)
    , array('name' => 'jack', 'age' => 22)
);

J'espère qu'il pourra être trié par âge, du plus petit au plus grand. L'auteur a trié deux méthodes et les a partagées avec vous.

1. Utilisez array_multisort

L'utilisation de cette méthode sera plus gênante. Vous devez extraire l'âge et le stocker dans un tableau unidimensionnel, puis l'organiser par ordre croissant par âge. Le code spécifique est le suivant :

$ages = array();
foreach ($users as $user) {
    $ages[] = $user['age'];
}
array_multisort($ages, SORT_ASC, $users);

Après l'exécution, $users sera un tableau trié, qui peut être imprimé pour voir. Si vous devez d'abord trier par âge par ordre croissant, puis par nom par ordre croissant, la méthode est la même que ci-dessus, c'est-à-dire extraire un tableau de noms supplémentaire. La méthode de tri finale est appelée comme ceci :

<.>
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
2. Utilisez usort

Le plus grand avantage de l'utilisation de cette méthode est que vous pouvez personnaliser certaines méthodes de tri plus complexes. Par exemple, triez par ordre décroissant par longueur de nom :

usort($users, function($a, $b) {
            $al = strlen($a[&#39;name&#39;]);
            $bl = strlen($b[&#39;name&#39;]);
            if ($al == $bl)
                return 0;
            return ($al > $bl) ? -1 : 1;
        });
Des fonctions anonymes sont utilisées ici, et elles peuvent être extraites séparément si nécessaire. Parmi eux, $a et $b peuvent être compris comme des éléments du tableau $users. Vous pouvez directement indexer la valeur du nom, calculer la longueur, puis comparer les longueurs.

L'auteur préfère la deuxième méthode car il y a moins d'étapes pour extraire le contenu trié dans un tableau unidimensionnel et la méthode de tri est plus flexible.

Pour plus d'articles liés à la méthode de tri des tableaux bidimensionnels PHP (array_multisort usort), veuillez faire attention au site Web PHP 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