In PHP verwenden wir häufig verschiedene Sortierfunktionen, um Arrays zu sortieren. RSORT () ist eine der üblichen Funktionen, mit denen Arrays (von groß nach klein) umgekehrt werden. Viele Entwickler haben jedoch festgestellt, dass nach Verwendung von RSORT () der Schlüsselname des Arrays zurückgesetzt wird und der ursprüngliche Schlüsselname verloren geht. Dies führt dazu, dass viele Menschen Probleme haben, sich mit assoziativen Arrays zu befassen.
RSORT () ist eine Funktion, die speziell für die Sortierung von Index -Arrays (numerische Schlüssel) entwickelt wurde. Es baut den Index des Arrays neu auf , dh und indiziert automatisch ab 0. Es behält den ursprünglichen Schlüsselnamen nicht bei, da er die Werte sortiert und kontinuierliche numerische Indizes generiert.
Einfach ausgedrückt, RSORT () wird nach Wert sortiert und für gewöhnliche numerische Arrays geeignet.
Zum Beispiel:
<?php
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
rsort($arr);
print_r($arr);
?>
Das Ausgangsergebnis ist:
Array
(
[0] => 3
[1] => 2
[2] => 1
)
Wie Sie sehen können, sind die ursprünglichen Schlüsselnamen 'A', 'B', 'C' vollständig verschwunden und sind zu einem kontinuierlichen numerischen Index geworden.
Wenn wir Arrays mit Schlüsselnamen sortieren und die Schlüsselnamen unverändert halten müssen, können wir Folgendes berücksichtigen:
arsort () ist eine Funktion mit zugehörigen Schlüsselnamen. Es kann Array -Werte umkehren und die Schlüsselnamen unverändert halten.
Beispiel:
<?php
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
arsort($arr);
print_r($arr);
?>
Ausgabe:
Array
(
[a] => 3
[c] => 2
[b] => 1
)
Auf diese Weise sind die Schlüsselnamen A, B, C intakt erhalten.
Wenn Sie die Zusammenfassung anpassen müssen, können Sie uasort () verwenden, wodurch der Schlüsselname unverändert bleibt.
<?php
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
uasort($arr, function($x, $y) {
return $y <=> $x; // Reverse Sorting
});
print_r($arr);
?>
Ausgabe:
Array
(
[a] => 3
[c] => 2
[b] => 1
)
Wenn die Array-Struktur leicht komplex ist, können Sie Schlüsselwertpaare extrahieren und sortieren, bevor Sie das Array erstellen.
RSORT () verliert den Schlüsselnamen, da es das Array, das für die normale Index -Array -Sortierung geeignet ist, neu inxziert.
Wenn Sie den Schlüsselnamen beibehalten müssen, sollten Sie arsort () oder uasort () verwenden.
Arsort () kehrt die Werte direkt um und bewahrt die Schlüsselnamen.
Uasort () kann die Sortierlogik anpassen und eine höhere Flexibilität aufweisen.
Durch das Beherrschen der Unterschiede und Verwendungen dieser Funktionen können Ihr PHP -Array effizienter sortiert und die Probleme vermeiden, die durch fehlende Schlüsselnamen verursacht werden.
<?php
// Ein vollständiges Beispiel dafür, was das oben genannte enthält
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
// Fehlerdemonstration:rsortDer Schlüsselname wird verloren gehen
rsort($arr);
print_r($arr);
echo "\n";
// Richtige Demonstration:verwendenarsort保持键名Reverse Sorting
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
arsort($arr);
print_r($arr);
echo "\n";
// Benutzerdefinierte Sortierdemonstration uasort
$arr = [
'a' => 3,
'b' => 1,
'c' => 2
];
uasort($arr, function($x, $y) {
return $y <=> $x; // Reverse Sorting
});
print_r($arr);
?>
Weitere Tipps zum Sortieren von PHP-Array-Sortieren finden Sie unter gitbox.net/docs/php-arrays .