Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 Unit Test Generator
 TLD Liste
 Webkatalog‑Verzeichnis

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
 
 
 

PHP array_reverse(): Array in umgekehrter Reihenfolge

Sie befinden sich: Home > Php Tutorial > PHP array_reverse(): Array ...

PHP array_reverse(): Array in umgekehrter Reihenfolge
Eintrag am:
21.05.2026
Hits / Besucher:
16
Sprache:
  Deutsch
Tutorial Art:
eigenes
Eingetragen von:
 
Beschreibung

Was macht PHP array_reverse()?

Wer in PHP eine Liste in genau der entgegengesetzten Reihenfolge anzeigen will, also etwa die neuesten Newsbeiträge zuerst oder die letzte Datenbankzeile am Anfang, sucht nach einer schlanken Lösung. Genau hier kommt PHP array_reverse ins Spiel: Die Funktion nimmt ein Array entgegen und gibt ein neues Array zurück, in dem die Elemente in umgekehrter Reihenfolge stehen. Aus [1, 2, 3] wird [3, 2, 1], ganz ohne Schleife oder eigene Logik.

Illustration zum Tutorial: PHP array_reverse(): Array in umgekehrter Reihenfolge

Die folgenden Abschnitte klären den oft missverstandenen Parameter preserve_keys und grenzen das Umkehren klar gegen das Sortieren mit rsort ab.

So unspektakulär das auf den ersten Blick wirkt, so häufig kommt PHP array_reverse() im Alltag vor. News-Listen, Stack-Auswertungen, Forum-Threads, Audit-Logs, all diese Anwendungsfälle profitieren von einer schnellen Umkehr. Das Tutorial zeigt die wichtigsten Patterns, klärt den Unterschied zwischen Umkehren und Sortieren und erklärt den oft missverstandenen Parameter preserve_keys.

Syntax und Parameter

Die Signatur ist kompakt. PHP array_reverse() erwartet ein Array und akzeptiert optional einen zweiten Parameter, der das Verhalten bei numerischen Schlüsseln steuert.

<?php

array_reverse(array $array, bool $preserve_keys = false): array

Der Rückgabewert ist immer ein neues Array. Das Original bleibt unverändert, weil die Funktion nicht per Referenz arbeitet. Wer das Ergebnis in-place braucht, weist es einfach derselben Variable zu. Der Parameter preserve_keys sorgt dafür, dass auch numerische Schlüssel ihre Werte behalten, was im nächsten Abschnitt im Detail betrachtet wird.

Erstes Beispiel mit print_r

Zum Einstieg ein einfaches Beispiel mit einem numerischen Array. PHP array_reverse() liefert die Werte in umgekehrter Reihenfolge zurück, wobei standardmäßig die Schlüssel ab 0 neu vergeben werden.

<?php

$zahlen = [1, 2, 3, 4, 5];
print_r(array_reverse($zahlen));
/* Array
(
[0] => 5
[1] => 4
[2] => 3
[3] => 2
[4] => 1
) */

Das Ergebnis ist erwartbar. Die Werte stehen in umgekehrter Reihenfolge, die Schlüssel sind weiterhin lückenlos und beginnen bei 0. Im nächsten Schritt wird interessant, wie sich PHP array_reverse() bei assoziativen Arrays verhält.

Verhalten bei assoziativen Arrays

Assoziative Arrays behalten ihre Schlüssel immer, unabhängig vom Wert des preserve_keys-Parameters. Die Reihenfolge der Einträge wird umgedreht, jeder Schlüssel bleibt seinem Wert zugeordnet.

<?php

$user = ['name' => 'Anna', 'rolle' => 'admin', 'land' => 'DE'];
print_r(array_reverse($user));
/* Array
(
[land] => DE
[rolle] => admin
[name] => Anna
) */

Das ist die intuitive Erwartung, die in der Praxis meistens passt. Wer ein gemischtes Array hat, also numerische und String-Schlüssel kombiniert, bekommt das gleiche Verhalten: Die String-Schlüssel bleiben, und die numerischen werden je nach preserve_keys umindiziert oder beibehalten.

Der Parameter preserve_keys

Der zweite Parameter wird interessant, sobald die numerischen Schlüssel selbst eine Bedeutung tragen. Im typischen Fall sind das ID-Felder aus einer Datenbank oder Indizes, die zu anderen Listen passen müssen.

<?php

$daten = [10 => 'a', 11 => 'b', 12 => 'c'];

print_r(array_reverse($daten));
/* Array ( [0] => c [1] => b [2] => a )
Schluessel werden ab 0 neu vergeben */

print_r(array_reverse($daten, true));
/* Array ( [12] => c [11] => b [10] => a )
Schluessel bleiben erhalten */

Wer sich nicht sicher ist, ob die numerischen Schlüssel relevant sind, sollte preserve_keys lieber auf true setzen. Das ist die defensive Variante und schützt vor subtilen Bugs, wenn der Code später erweitert wird und die ID-Werte plötzlich gebraucht werden.

Praxisbeispiel News-Liste

Eine News-Liste aus der Datenbank kommt oft in chronologischer Reihenfolge zurück. Wer die jüngsten Beiträge zuerst anzeigen will, kann das entweder im SQL-Statement mit ORDER BY datum DESC regeln oder das Ergebnis in PHP umdrehen.

<?php

$artikel = [
['titel' => 'Eintrag 1', 'datum' => '2026-01-10'],
['titel' => 'Eintrag 2', 'datum' => '2026-02-15'],
['titel' => 'Eintrag 3', 'datum' => '2026-03-22'],
];

foreach (array_reverse($artikel) as $beitrag) {
echo $beitrag['datum'] . ': ' . $beitrag['titel'] . "\n";
}
/* 2026-03-22: Eintrag 3
2026-02-15: Eintrag 2
2026-01-10: Eintrag 1 */

Beide Wege führen zum Ziel. Im SQL-Statement ist die Sortierung effizienter, weil die Datenbank den Index nutzen kann. PHP array_reverse() ist sinnvoll, wenn die Daten aus einer anderen Quelle stammen oder bereits in der App vorliegen und ohne weiteren Datenbank-Round-Trip umgekehrt angezeigt werden sollen. Im Frontend lässt sich die foreach-Schleife so direkt mit dem umgekehrten Array füttern.

Stack-Reversal mit array_reverse()

Arrays werden in PHP häufig als Stack genutzt, mit array_push() und array_pop(). Wer einen Stack einmal in der entgegengesetzten Richtung durchlaufen will, etwa für eine Undo-Historie oder eine Replay-Funktion, dreht ihn mit PHP array_reverse() einmalig um.

<?php

$historie = [];
array_push($historie, 'open file');
array_push($historie, 'edit text');
array_push($historie, 'save file');

/* Replay in chronologischer Reihenfolge: */
foreach ($historie as $aktion) {
echo $aktion . "\n";
}

/* Undo in umgekehrter Reihenfolge: */
foreach (array_reverse($historie) as $aktion) {
echo 'Rueckgaengig: ' . $aktion . "\n";
}

Das Pattern ist sehr lesbar und vermeidet manuelles Indexrechnen. Wer den Stack regelmäßig in beide Richtungen durchläuft, sollte ihn aber nicht jedes Mal neu reversen. Stattdessen lohnt es sich, die umgedrehte Variante einmal zu cachen, falls der Stack zwischenzeitlich nicht modifiziert wird.

flowchart TD
    A["Original-Array"] --> B{"Schluesseltyp?"}
    B -->|numerisch| C{"preserve_keys?"}
    B -->|assoziativ| D["Reihenfolge umdrehen, Keys erhalten"]
    C -->|false| E["Reihenfolge umdrehen, Keys neu"]
    C -->|true| D

Unterschied zu rsort und usort

Im Code-Bestand großer Projekte werden array_reverse() und rsort() oder usort() gelegentlich verwechselt. Der Unterschied ist fundamental: PHP array_reverse() dreht die bestehende Reihenfolge um, ohne die Werte miteinander zu vergleichen. rsort() sortiert das Array absteigend, vergleicht also die Werte und ordnet sie neu.

<?php

$werte = [5, 1, 4, 2, 3];

print_r(array_reverse($werte));
/* Array ( [0] => 3 [1] => 2 [2] => 4 [3] => 1 [4] => 5 )
Reihenfolge umgedreht */

rsort($werte);
print_r($werte);
/* Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
absteigend sortiert */

Wer eine Liste sortiert haben will, nimmt rsort. Wer eine bereits sortierte Liste in die Gegenrichtung anzeigen will, nimmt array_reverse. Der Unterschied klingt klein, ist im Bug-Tracking aber regelmäßig die Quelle für falsche Ausgaben.

Performance und Best Practices

PHP array_reverse() ist intern in C implementiert und damit sehr schnell. Selbst bei Arrays mit zehntausenden Elementen ist die Laufzeit kein praktisches Problem. Trotzdem allokiert die Funktion ein neues Array im Speicher, deshalb sollte sie bei sehr großen Datenmengen nicht unnötig oft aufgerufen werden.

Drei Best Practices haben sich in der Praxis bewährt. Erstens, bei Datenbank-Listen lieber ORDER BY im SQL nutzen, weil das den Index ausnutzt und keinen zusätzlichen Speicher in PHP belegt. Zweitens, beim Mischen von numerischen und String-Schlüsseln immer überlegen, ob preserve_keys = true defensiv sinnvoll ist. Drittens, das Resultat einer Variable zuweisen statt die Funktion wiederholt aufzurufen, wenn der Wert mehrfach gebraucht wird.

Wer in einer foreach-Schleife einfach nur rückwärts iterieren will, kann sich array_reverse auch sparen und stattdessen mit einer for-Schleife und absteigendem Index arbeiten. Bei kleinen Arrays sind beide Varianten gleichwertig, bei sehr großen Arrays spart die for-Schleife die Speicher-Allokation des umgedrehten Arrays.

Fazit

PHP array_reverse() ist eine schlanke und sehr nützliche Funktion, um die Reihenfolge eines Arrays umzudrehen. Sie eignet sich für News-Listen, Stack-Reversals, Undo-Historien und alle Fälle, in denen Daten in der Gegenrichtung angezeigt werden sollen. Wer den Parameter preserve_keys bewusst nutzt und die Funktion klar von echten Sortier-Funktionen wie rsort() abgrenzt, hat ein verlässliches Werkzeug für den Alltag.

 

Tags:

 

 

Kommentare (0)

Noch keine Kommentare. Sei der Erste!

Melde dich an, um einen Kommentar zu schreiben.
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.