In PHP sind Arrays eine der am häufigsten verwendeten Datenstrukturen, und Sortiervorgänge sind auch in der tatsächlichen Entwicklung äußerst häufig. Arsort () ist eine Funktion, die von PHP zum Sortieren von Arrays bereitgestellt wird. Seine Einzigartigkeit ist, dass es nach der absteigenden Wertereihenfolge sortiert. In diesem Artikel wird systematisch die gemeinsame Verwendung von Arsort () vorgestellt und untersucht, wie sie in tatsächlichen Projekten flexibel für Array -Sortieranforderungen verwendet werden.
Die Syntax der Funktion arsort () ist sehr einfach:
bool arsort(array &$array, int $flags = SORT_REGULAR)
$ Array : Das zu sortierende Array, beachten Sie, dass es Referenzabgabe ist ;
$ flags : Optionales Sortyp -Flag, Standard ist sort_regular .
Diese Funktion gibt einen booleschen Wert zurück, kehrt für den Erfolg zu und kehrt falsch für das Scheitern zurück. Nach Abschluss der Sortierung ist das Array in absteigender Wertereihenfolge angeordnet und die Schlüsselnamen bleiben unverändert .
Hier ist ein grundlegendes Beispiel von arsort () :
$grades = [
'Alice' => 85,
'Bob' => 92,
'Charlie' => 78
];
arsort($grades);
print_r($grades);
Ausgabe:
Array
(
[Bob] => 92
[Alice] => 85
[Charlie] => 78
)
Wie Sie sehen können, ist das Array nach der Punktzahl von hoch nach niedrig sortiert, während der ursprüngliche Schlüsselname beibehält.
Arsort () von PHP unterstützt mehrere Sortierflags, wie z. B.:
Sort_numeric : sortieren nach numerischer Wert;
Sort_String : Sortieren nach String;
SORT_LOCALE_STRING : Sortieren von Zeichenfolgen basierend auf der aktuellen Einstellung des Gebietsschemas;
Sort_Natural : Natürliches Sortieren, geeignet für Szenen wie "Image2.jpg" vs "image10.jpg".
Zum Beispiel auf natürliche Weise die Zeichenfolgenwerte sortieren:
$files = [
'file1.txt',
'file12.txt',
'file2.txt'
];
arsort($files, SORT_NATURAL);
print_r($files);
Ausgabe:
Array
(
[1] => file12.txt
[2] => file2.txt
[0] => file1.txt
)
Dies entspricht eher der menschlichen Wahrnehmung als der traditionellen Sortierung von Saiten.
In einigen Spiel- oder Community -Websites ist das User Points -Ranking eine gemeinsame Funktion. Sie können Arsort () direkt verwenden:
$users = [
'userA' => 1500,
'userB' => 2400,
'userC' => 1800
];
arsort($users);
foreach ($users as $user => $score) {
echo "$user: $score\n";
}
Ausgabe:
userB: 2400
userC: 1800
userA: 1500
Angenommen, Sie erhalten eine Reihe von Artikelbesuchen aus der Datenbank:
$articles = [
'post-1' => 152,
'post-2' => 1200,
'post-3' => 870
];
arsort($articles);
foreach ($articles as $slug => $views) {
echo "<a href=\"https://gitbox.net/articles/$slug\">$slug ($views views)</a><br>";
}
Die Ausgabeverbindungen können automatisch in absteigender Reihenfolge gemäß der Anzahl der Besuche angeordnet werden, was für die Anzeige beliebter Inhalte bequem ist.
Wenn das Datenvolumen groß ist, können Sie Array_Slice () verwenden, um das sortierte Array zu paginieren:
arsort($users);
$page = 1;
$perPage = 2;
$pagedUsers = array_slice($users, ($page - 1) * $perPage, $perPage, true);
print_r($pagedUsers);
Diese Methode kann verwendet werden, um Ranking -Seiten mit Paging -Funktionen zu generieren.
arsort () wird das ursprüngliche Array (Referenzpass) direkt ändern.
Wenn ein Array komplexe Strukturen (z. B. verschachtelte Arrays) enthält, wird empfohlen, die Abmessungen zu extrahieren, die zuerst sortiert werden müssen.
Schlüsselnamen bleiben beibehalten, was besonders nützlich ist, wenn die ursprüngliche Assoziation beibehalten werden muss.
Arsort () ist ein leistungsstarkes Werkzeug in der PHP -Array -Verarbeitung, das für die Verwendung in verschiedenen Szenarien geeignet ist, in denen Schlüsselnamen in absteigender Reihenfolge aufbewahrt und angeordnet werden müssen. Es kann flexibel sein, von einfacher Score -Sortierung bis hin zu komplexen Ranking -Paging. Durch die Kombination des Sort_ -Flags und anderer Array -Funktionen können Sie eine komplexere Datenverarbeitungslogik implementieren, um die Lesbarkeit und Effizienz Ihres Codes zu verbessern. Wenn Sie Arsort () einwandfrei nutzen und genutzt werden, wird Ihre Array -Verarbeitungsfunktionen auf ein höheres Niveau führen.