Aktueller Standort: Startseite> Neueste Artikel> Wie sortiere ich Arrays mithilfe der Arsort -Funktion und lasse die Schlüsselnamen des Arrays unverändert? Detaillierte Analyse

Wie sortiere ich Arrays mithilfe der Arsort -Funktion und lasse die Schlüsselnamen des Arrays unverändert? Detaillierte Analyse

gitbox 2025-06-15

1. Überblick über die Funktion arsort ()

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.

Funktionsprototyp

 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.

Rückgabewert

Gibt einen Booleschen Wert zurück. Return true , wenn die Sortierung erfolgreich ist; ansonsten false zurückgeben.


2. Grundnutzung

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);
?>

Ausgangsergebnis:

 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.


3.. Wie kann man die Sortierregeln angeben, wenn Arsort () verwendet wird?

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 .

Beispiel 1: Verwenden Sie sort_numeric für die numerische Sortierung

 <?php
$array = [
    "a" => 10,
    "b" => 1,
    "c" => 3
];

arsort($array, SORT_NUMERIC); // Sortieren nach Nummer

print_r($array);
?>

Ausgangsergebnis:

 Array
(
    [a] => 10
    [c] => 3
    [b] => 1
)

Beispiel 2: Verwenden Sie sort_string für die String -Sortierung

 <?php
$array = [
    "apple" => "green",
    "banana" => "yellow",
    "orange" => "orange"
];

arsort($array, SORT_STRING); // Sortieren nach String

print_r($array);
?>

Ausgangsergebnis:

 Array
(
    [orange] => orange
    [banana] => yellow
    [apple] => green
)

4. Anwendungsszenarien von Arsort ()

Szene 1: Sortieren Sie die Schülerliste nach Klassen

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);
?>

Ausgangsergebnis:

 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.


5. Häufige Fehler und Debuggen

  1. 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
?>

Ausgangsergebnis:

 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
  1. 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.