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

高洛峰
Libérer: 2023-03-03 21:30:02
original
2244 Les gens l'ont consulté

Par exemple, un tableau comme celui-ci :

$users = array(
    array('name' => 'tom', 'age' => 20)
    , array('name' => 'anny', 'age' => 18)
    , array('name' => 'jack', 'age' => 22)
);
Copier après la connexion

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

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

Étiquettes associées:
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