Krsort () ist eine integrierte Funktion in PHP zum Sortieren von Arrays in umgekehrter Reihenfolge mit Schlüsselnamen. Es sortiert das Array nach der alphabetischen oder numerischen Reihenfolge des Schlüsselnamens von groß nach klein und behält den Zusammenhang zwischen dem Schlüsselnamen und dem Schlüsselwert bei.
Grammatik:
bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
$ Array : Ein Array, das sortiert werden muss und eine Referenz sein muss, wenn sie weitergegeben werden.
$ sort_flags : Ein Flag für Sortierverhalten (optional). Zu den häufig verwendeten gehören sort_regular , sort_numeric , sort_string usw.
Wenn Krsort () mehrdimensionale Arrays verwendet, sortiert es nur die ersten Schichtschlüsselnamen in umgekehrter Reihenfolge, und die Reihenfolge der Unterarrays im Inneren wird nicht betroffen. Wenn Sie die Subtarrays in umgekehrter Reihenfolge sortieren möchten, müssen Sie rekursive Methoden kombinieren, um dies zu erreichen.
Das folgende Beispiel zeigt, wie man Krsort () verwendet, um die ersten Schichtschlüsselnamen eines mehrdimensionalen Arrays in umgekehrter Reihenfolge zu sortieren:
<?php
// Definieren Sie ein mehrdimensionales Array
$multiArray = [
"b" => ["name" => "Zhang San", "age" => 25],
"a" => ["name" => "Li Si", "age" => 30],
"c" => ["name" => "Wang Wu", "age" => 22],
];
// verwendenkrsortSortieren der ersten Ebenenschlüssel in umgekehrter Reihenfolge
krsort($multiArray);
// Ausgabe sortiertes Array
echo "<pre>";
print_r($multiArray);
echo "</pre>";
?>
Ausgangsergebnis:
Array
(
[c] => Array
(
[name] => Wang Wu
[age] => 22
)
[b] => Array
(
[name] => Zhang San
[age] => 25
)
[a] => Array
(
[name] => Li Si
[age] => 30
)
)
Aus der Ausgabe können wir feststellen, dass die Schlüsselnamen des Arrays erfolgreich in umgekehrter Reihenfolge der alphabetischen Reihenfolge c> b> a angeordnet sind.
Wenn Ihr mehrdimensionales Array über eine komplexe Struktur verfügt und die Unterarrays in umgekehrter Reihenfolge sortieren muss, können Sie rekursive Funktionen verwenden:
<?php
function recursiveKrsort(&$array) {
if (!is_array($array)) {
return;
}
krsort($array);
foreach ($array as &$value) {
if (is_array($value)) {
recursiveKrsort($value);
}
}
}
// Beispiel Mehrdimensionales Array
$multiArray = [
"b" => [
"z" => 1,
"a" => 2
],
"a" => [
"c" => 3,
"b" => 4
],
];
// Rekursive inverse Sortierung
recursiveKrsort($multiArray);
echo "<pre>";
print_r($multiArray);
echo "</pre>";
?>
Ergebnis:
Array
(
[b] => Array
(
[z] => 1
[a] => 2
)
[a] => Array
(
[c] => 3
[b] => 4
)
)
Sie werden feststellen, dass die Schlüsselnamen der ersten Schicht und der Subtarray in umgekehrter Reihenfolge sortiert sind.
Krsort () eignet sich zum Sortieren in umgekehrter Reihenfolge nach Schlüsselnamen und gilt standardmäßig nur für die erste Schicht.
Wenn ein mehrdimensionales Array tief sortiert werden soll, wird empfohlen, Krsort () in Verbindung mit rekursivem Ruf aufzurufen.
Das Verständnis und flexible Verwendung von Krsort () kann Ihnen dabei helfen, das doppelt so viele Anstrengungen im Umgang mit komplexen Arrays zu erzielen.
In den Beispielen in diesem Artikel glaube ich, dass Sie die Methode der Verwendung von Krsort () zur Sortierung von Multi-dimensionalen Arrays in umgekehrter Reihenfolge gemeistert haben. Sie können es gerne in der Praxis bewerben.