Die PHP-Funktion array_reverse() verstehen
Die PHP-Funktion array_reverse() kehrt die Reihenfolge der Elemente eines Arrays um und gibt ein neues Array zurück.
Die PHP-Funktion array_reverse() gibt ein neues array zurück, dessen Elemente in umgekehrter Reihenfolge vorliegen. Sie ist eine eingebaute Funktion (keine Erweiterung erforderlich) und funktioniert sowohl mit indizierten als auch mit assoziativen arrays. Sie ist das geeignete Werkzeug, wenn eine „letztes-zu-erstem"-Ansicht der Daten benötigt wird – beispielsweise um die neuesten Kommentare zuerst anzuzeigen, eine Liste rückwärts zu durchlaufen oder eine Sortierung rückgängig zu machen.
Diese Seite behandelt die Syntax, den Umgang mit Schlüsseln, das Flag $preserve_keys und häufige Fallstricke.
Syntax
array_reverse(array $array, bool $preserve_keys = false): array| Parameter | Erforderlich | Beschreibung |
|---|---|---|
$array | Ja | Das umzukehrende array. |
$preserve_keys | Nein | Wenn true, bleiben numerische Schlüssel an ihre Werte gebunden, anstatt neu nummeriert zu werden. String-Schlüssel werden immer beibehalten, unabhängig von diesem Flag. Standardwert ist false. |
Die Funktion gibt ein neues array zurück; das Original wird nie verändert.
Wie funktioniert die PHP-Funktion array_reverse()?
array_reverse() durchläuft das Eingabe-array vom letzten zum ersten Element und erstellt ein neues array in dieser Reihenfolge. Standardmäßig werden Integer-Schlüssel ab 0 neu nummeriert, während string-Schlüssel unverändert bleiben. Übergeben Sie $preserve_keys als true, wenn die ursprünglichen numerischen Schlüssel an ihre Werte gebunden bleiben sollen.
Hier ist der einfachste Fall – das Umkehren eines indizierten arrays:
PHP-Beispiel zur Verwendung der Funktion array_reverse()
Ausgabe:
Array
(
[0] => cherry
[1] => banana
[2] => apple
)Wie zu sehen ist, entspricht die Reihenfolge der Elemente in $reversed_array der umgekehrten Reihenfolge der Elemente in $original_array.
Verwendung von array_reverse() mit assoziativen Arrays
Wie bereits erwähnt, kann die Funktion array_reverse() auch mit assoziativen arrays verwendet werden. Bei assoziativen arrays wird die Reihenfolge der Elemente umgekehrt, die string-Schlüssel bleiben jedoch standardmäßig unverändert.
Hier ist ein Beispiel, wie die Funktion array_reverse() mit einem assoziativen array verwendet werden kann:
PHP-Beispiel zur Verwendung von array_reverse() mit einem assoziativen array
Ausgabe:
Array
(
[c] => cherry
[b] => banana
[a] => apple
)Wie zu sehen ist, entsprechen die Schlüssel der Elemente in $reversed_array weiterhin den ursprünglichen Schlüsseln, aber die Reihenfolge der Elemente ist umgekehrt. String-Schlüssel werden immer beibehalten, daher macht das Flag $preserve_keys hier keinen Unterschied.
Numerische Schlüssel beibehalten
Bei indizierten (numerischen) arrays nummeriert array_reverse() die Schlüssel standardmäßig ab 0 neu. Das ist in der Regel das gewünschte Verhalten, aber manchmal trägt der ursprüngliche Index eine Bedeutung – eine Zeilennummer, eine Position, eine ID. Übergeben Sie true als zweites Argument, um diese Schlüssel an ihre Werte zu binden:
PHP-Beispiel zur Beibehaltung numerischer Schlüssel mit array_reverse()
<?php
$data = array(10 => "ten", 20 => "twenty", 30 => "thirty");
// Default: numeric keys are renumbered from 0
print_r(array_reverse($data));
// preserve_keys = true: original numeric keys are kept
print_r(array_reverse($data, true));
?>Ausgabe:
Array
(
[0] => thirty
[1] => twenty
[2] => ten
)
Array
(
[30] => thirty
[20] => twenty
[10] => ten
)Im ersten array werden die Werte umgekehrt, aber die Schlüssel werden zurückgesetzt; im zweiten wandern die Schlüssel 30, 20 und 10 mit ihren Werten mit.
Häufige Fallstricke
- Das Original-array wird nicht verändert.
array_reverse($arr)gibt ein neues array zurück – es kehrt$arrnicht an Ort und Stelle um. Den Rückgabewert immer erfassen:$arr = array_reverse($arr);. - Es handelt sich nicht um eine Sortierung. Das Umkehren dreht nur die aktuelle Reihenfolge um. Um eine absteigende Reihenfolge zu erhalten, zuerst sortieren (z. B. mit
rsort()oderarsort()) und nicht umkehren. - String-Schlüssel ignorieren
$preserve_keys. Das Flag wirkt sich nur auf Integer-Schlüssel aus; string-Schlüssel werden in jedem Fall beibehalten. - Einen string umkehren.
array_reverse()funktioniert nur mit arrays. Um einen string umzukehren, stattdessenstrrev()verwenden.
Verwandte Funktionen
array_slice()— einen Teil eines arrays extrahieren.array_merge()— arrays zusammenführen.rsort()— ein array in absteigender Reihenfolge sortieren.krsort()— ein assoziatives array nach Schlüssel in umgekehrter Reihenfolge sortieren.strrev()— einen string umkehren.
Fazit
Zusammenfassend lässt sich sagen, dass array_reverse() eine leistungsstarke und vielseitige Funktion ist, mit der sich die Reihenfolge der Elemente in einem array einfach umkehren lässt. Ob mit indizierten oder assoziativen arrays – array_reverse() ermöglicht es, arrays nach Bedarf zu manipulieren. Dank ihrer einfachen Syntax und ihres geradlinigen Verhaltens ist array_reverse() ein unverzichtbares Werkzeug für jeden PHP-Programmierer, der mit arrays arbeitet.