Zweidimensionale PHP-Array-Sortiermethode (array_multisort usort)

高洛峰
Freigeben: 2023-03-03 21:30:02
Original
2249 Leute haben es durchsucht

Zum Beispiel ein Array wie das folgende:

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

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 dem Login kopieren

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 usort
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
Nach dem Login kopieren

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;
        });
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage