Maison > Article > développement back-end > Méthode de tri de tableau bidimensionnel PHP (array_multisort usort)
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 usortLe 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['name']); $bl = strlen($b['name']); 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 !