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);
usort($users, function($a, $b) { $al = strlen($a['name']); $bl = strlen($b['name']); if ($al == $bl) return 0; return ($al > $bl) ? -1 : 1; });