Aktueller Standort: Startseite> Neueste Artikel> Werden die Schlüsselnamen des PHP -Arrays nach dem Sortieren mit Krsort wieder integriert? Verstehst du die Regeln?

Werden die Schlüsselnamen des PHP -Arrays nach dem Sortieren mit Krsort wieder integriert? Verstehst du die Regeln?

gitbox 2025-05-29

In PHP ist Krsort () eine sehr häufige Sortierfunktion, mit der Arrays in umgekehrter Reihenfolge der Schlüsselnamen sortiert werden. Viele Entwickler haben möglicherweise eine Frage, wenn Sie Krsort () verwenden: Werden die Schlüsselnamen des PHP-Arrays nach der Sortierung neu indiziert? In diesem Artikel werden wir dieses Problem im Detail diskutieren und die Regeln hinter Krsort () verstehen.

1. Grundnutzung von Krsort ()

Die Funktion der Funktion krsort () besteht darin, das Array in umgekehrter Reihenfolge der Arrayschlüsselnamen zu sortieren. Es behält die Zuordnungsbeziehung zwischen dem Schlüsselnamen und dem entsprechenden Wert bei und unterstützt verschiedene Sortierflags. Die grundlegenden Verwendungsmethoden sind wie folgt:

 <?php
$array = [
    "apple" => 3,
    "banana" => 2,
    "cherry" => 5
];

krsort($array);
print_r($array);
?>

Nach dem Ausführen des oben genannten Code wird das Ausgabemarray in umgekehrter Reihenfolge der Schlüsselnamen sortiert:

 Array
(
    [cherry] => 5
    [banana] => 2
    [apple] => 3
)

Wie Sie sehen können, ist das Array nach den Schlüsselnamen in umgekehrter Reihenfolge angeordnet.

2. Rindex von Krsort () und Arrayschlüsselnamen

Ein wichtiges Merkmal der Sortierung von Krsort () ist, dass es die Schlüsselnamen des Arrays nicht wieder indexiert . Dies bedeutet, dass, wenn die Schlüsselnamen im Array diskontinuierlich sind, die Schlüsselnamen des Arrays so bleiben, wie sie nach krsort () sortieren. Mit anderen Worten, Krsort () sortiert einfach die Schlüsselnamen der inversen Reihenfolge der Array und ändert den Typ der Schlüsselnamen oder deren ursprüngliche Reihenfolge nicht.

Zum Beispiel:

 <?php
$array = [
    1 => "apple",
    3 => "banana",
    2 => "cherry"
];

krsort($array);
print_r($array);
?>

Das Ausgangsergebnis ist:

 Array
(
    [3] => banana
    [2] => cherry
    [1] => apple
)

In diesem Beispiel bleiben die Schlüsselnamen des Arrays in umgekehrter Reihenfolge, obwohl die Schlüsselnamen 1 , 2 , 3 unverändert bleiben und nicht wieder integriert sind.

3. Warum ist es nicht wieder integriert?

Die Schlüsselnamen von PHP -Arrays können von Ganzzahl oder String -Typ sein. Wenn Sie ein Array mit Krsort () sortieren, ordnen Sie diese Schlüsselnamen nicht neu an, sondern ordnen sie einfach in umgekehrter Reihenfolge nach dem Wert des Schlüsselnamens an . PHP -Sortierfunktionen wie Krsort () ändern Sie den Schlüsselnamen des Arrays standardmäßig nicht, es sei denn, Sie fragen ausdrücklich nach einem Reindedex.

Wenn Sie nach dem Sortieren des Array die folgenden Ganzzahl -Namensnamen rekonstruieren möchten, können Sie die Funktion array_values ​​() verwenden, die alle Schlüsselnamen im Array verworfen und den Index von 0 regeneriert:

 <?php
$array = [
    1 => "apple",
    3 => "banana",
    2 => "cherry"
];

krsort($array);
$array = array_values($array);
print_r($array);
?>

Das Ausgangsergebnis ist:

 Array
(
    [0] => banana
    [1] => cherry
    [2] => apple
)

Auf diese Weise erhalten Sie ein reindexiertes Array mit den Schlüsselnamen ab 0 .

4. Die Sortierflagge von Krsort ()

Die Funktion krsort () unterstützt auch einen optionalen Sortier -Flag -Parameter. Mit diesem Parameter können Sie die Sortierungsmethode sorgfältiger steuern, z . Häufige Verwendung sind wie folgt:

 <?php
$array = [
    "10" => "apple",
    "2" => "banana",
    "30" => "cherry"
];

krsort($array, SORT_NUMERIC);
print_r($array);
?>

Das Ausgangsergebnis ist:

 Array
(
    [30] => cherry
    [10] => apple
    [2] => banana
)

In diesem Beispiel sortieren wir die Schlüsselnamen in umgekehrter Reihenfolge nach numerischer Größe nach Sort_Numeric .

5. Zusammenfassung

Beim Sortieren mit Krsort () werden die Schlüsselnamen des PHP-Arrays nicht wieder integriert. Krsort () ordnet das Array einfach in umgekehrter Reihenfolge an, basierend auf dem Wert des Schlüsselnamens, und die Schlüsselnamen im Array bleiben unverändert. Wenn Sie ein kontinuierliches, rededexedes Array erhalten möchten, können Sie die Funktion array_values ​​() verwenden. Nach dem Verständnis dieser Regeln können Sie die Sortierung von PHP -Arrays und die Verarbeitung von Schlüsselnamen flexibler steuern.

Wenn Sie Fragen haben oder weitere Beispiele benötigen, können Sie gerne fragen.