Die Funktion arsort () wird verwendet, um Arrays in absteigender Reihenfolge nach Werten zu sortieren. Es sortiert nicht nur nach dem Wert des Arrays, sondern auch die Schlüsselnamen des ursprünglichen Arrays. Selbst wenn sich der Wert ändert, bleibt der Schlüsselname daher mit der Position im ursprünglichen Array überein.
bool arsort ( array &$array , int $sort_flags = SORT_REGULAR )
Array & $ Array : Das Array zu sortieren.
int $ sort_flags : optionaler Parameter definiert die Sortierregeln. Zu den allgemeinen Sortierregeln gehören Sort_regular (Standard), Sort_Numeric , Sort_String usw.
Gibt einen Booleschen Wert zurück. Return true , wenn die Sortierung erfolgreich ist; ansonsten false zurückgeben.
Hier ist ein einfaches Beispiel, das zeigt, wie die Funktion arsort () verwendet wird, um ein Array in absteigender Reihenfolge zu sortieren und den Schlüsselnamen unverändert zu lassen.
<?php
$array = [
"apple" => 5,
"banana" => 2,
"orange" => 8,
"grape" => 1
];
arsort($array); // Sortieren absteigend
print_r($array);
?>
Array
(
[orange] => 8
[apple] => 5
[banana] => 2
[grape] => 1
)
Wie oben gezeigt, sortiert Arsort () das Array in absteigender Wertereihenfolge, und die Schlüsselnamen (wie Apple , Banane ) bleiben unverändert.
Arsort () unterstützt die Angabe von Kollationen durch den Parameter Sort_flags . Wir können verschiedene Sortiermethoden auswählen, die häufigsten sind sort_numeric und sort_string .
<?php
$array = [
"a" => 10,
"b" => 1,
"c" => 3
];
arsort($array, SORT_NUMERIC); // Sortieren nach Nummer
print_r($array);
?>
Array
(
[a] => 10
[c] => 3
[b] => 1
)
<?php
$array = [
"apple" => "green",
"banana" => "yellow",
"orange" => "orange"
];
arsort($array, SORT_STRING); // Sortieren nach String
print_r($array);
?>
Array
(
[orange] => orange
[banana] => yellow
[apple] => green
)
Angenommen, wir haben eine Reihe von Studentennoten. Wir möchten die Schüler in absteigender Reihenfolge basierend auf den Noten sortieren und die Namen und Noten der Schüler entsprechen.
<?php
$students = [
"John" => 85,
"Jane" => 92,
"Tom" => 76,
"Lucy" => 89
];
arsort($students); // 根据成绩Sortieren absteigend
print_r($students);
?>
Array
(
[Jane] => 92
[Lucy] => 89
[John] => 85
[Tom] => 76
)
Dieser Ansatz ist sehr geeignet für Szenarien, in denen Daten basierend auf bestimmten Kriterien (z. B. Noten, Bewertungen usw.) sortiert werden müssen.
Referenzarray nicht übergeben <br> Wenn Sie das Array nicht durch Bezugnahme übergeben, ändert die Funktion arsort () das ursprüngliche Array nicht.
<?php
$array = [
"apple" => 5,
"banana" => 2
];
arsort($array); // Keine Zitate hier,Das ursprüngliche Array wird nicht geändert
print_r($array); // Originalarray ausgeben
?>
Array
(
[apple] => 5
[banana] => 2
)
Die Lösung besteht darin, das Array durch Bezugnahme zu übergeben.
arsort($array); // Verwenden Sie Referenzen, um Arrays direkt zu ändern
SORT_FLAGS -Parameterfehler <br> In einigen Fällen wird der Parameter des falschen Sorts_flags dazu führen, dass das Sortierergebnis schlechter ist als erwartet. Wenn das Element beispielsweise Zahlen beim Sortieren mit sort_string enthält, kann ein unerwartetes Sortierverhalten auftreten.