Heim > Artikel > Backend-Entwicklung > Zweidimensionale PHP-Array-Sortiermethode (array_multisort usort)
Zum Beispiel ein Array wie das folgende:
$users = array( array('name' => 'tom', 'age' => 20) , array('name' => 'anny', 'age' => 18) , array('name' => 'jack', 'age' => 22) );
Ich hoffe, es kann nach Alter von klein nach groß sortiert werden. Der Autor hat zwei Methoden herausgefunden und sie mit allen geteilt.
1. Verwenden Sie array_multisort
Die Verwendung dieser Methode ist aufwändiger. Sie müssen das Alter extrahieren und in einem eindimensionalen Array speichern und es dann in aufsteigender Reihenfolge nach Alter anordnen. Der spezifische Code lautet wie folgt:
$ages = array(); foreach ($users as $user) { $ages[] = $user['age']; } array_multisort($ages, SORT_ASC, $users);
Nach der Ausführung ist $users ein sortiertes Array, das zur Ansicht ausgedruckt werden kann. Wenn Sie zuerst in aufsteigender Reihenfolge nach Alter und dann in aufsteigender Reihenfolge nach Namen sortieren müssen, ist die Methode dieselbe wie oben, d 🎜>
2. Verwenden Sie usortarray_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
Der größte Vorteil dieser Methode besteht darin, dass Sie einige komplexere Sortiermethoden anpassen können. Sortieren Sie beispielsweise nach Namenslänge in absteigender Reihenfolge:
Hier werden anonyme Funktionen verwendet, die bei Bedarf separat extrahiert werden können. Unter diesen können $a und $b als Elemente im Array $users verstanden werden. Sie können den Namenswert direkt indizieren, die Länge berechnen und dann die Längen vergleichen.usort($users, function($a, $b) { $al = strlen($a['name']); $bl = strlen($b['name']); if ($al == $bl) return 0; return ($al > $bl) ? -1 : 1; });
Der Autor bevorzugt die zweite Methode, da weniger Schritte zum Extrahieren des sortierten Inhalts in ein eindimensionales Array erforderlich sind und die Sortiermethode flexibler ist.
Weitere Artikel zur zweidimensionalen PHP-Array-Sortiermethode (array_multisort usort) finden Sie auf der chinesischen PHP-Website!