W3docs

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
ParameterErforderlichBeschreibung
$arrayJaDas umzukehrende array.
$preserve_keysNeinWenn 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()

php— editable, runs on the server

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

php— editable, runs on the server

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 $arr nicht 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() oder arsort()) 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, stattdessen strrev() 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.

Übungen

Übung
Welche der folgenden Aussagen über die Funktion array_reverse() in PHP ist wahr?
Welche der folgenden Aussagen über die Funktion array_reverse() in PHP ist wahr?
Was this page helpful?