W3docs

Die PHP-Funktion array_flip verstehen

Die PHP-Funktion array_flip tauscht Schlüssel und Werte eines Arrays. Erfahren Sie Syntax, Anwendungsfälle und Besonderheiten.

Die PHP-Funktion array_flip tauscht Schlüssel und Werte eines Arrays: Jeder Schlüssel wird zu einem Wert, und jeder Wert wird zu einem Schlüssel. Sie gibt ein völlig neues Array zurück und verändert das übergebene Array nicht. Diese Seite behandelt die Syntax, ein ausführbares Beispiel, den Umgang mit Duplikaten und Schlüsseltypen, häufige Anwendungsfälle sowie verwandte Funktionen.

Syntax

array_flip(array $array): array
  • $array — das Eingabe-Array. Seine Werte müssen gültige Schlüssel sein, d. h. sie dürfen nur Ganzzahlen (integers) oder Zeichenketten (strings) sein. Jeder andere Wertetyp (booleans, Gleitkommazahlen, arrays, objects, null) löst eine Warnung aus und wird im Ergebnis übersprungen.
  • Rückgabewert — ein neues Array mit den vertauschten Schlüssel-/Wert-Paaren.

Verwendung der PHP-Funktion array_flip

Übergeben Sie Ihr Array an die Funktion, und sie gibt das umgekehrte Array zurück:

PHP-Beispiel zur Verwendung der Funktion array_flip

php— editable, runs on the server

In diesem Beispiel enthält $flipped_array Folgendes:

Array
(
    [1] => a
    [2] => b
    [3] => c
)

Die string-Schlüssel "a", "b", "c" sind jetzt die Werte, und die Ganzzahlen 1, 2, 3 sind jetzt die Schlüssel.

Vorteile der PHP-Funktion array_flip

Die Verwendung von array_flip in Ihrem PHP-Code bietet mehrere Vorteile:

  • Vereinfachung des Codes: array_flip kann Ihren Code vereinfachen, indem es das manuelle Vertauschen von Schlüsseln und Werten in einem Array überflüssig macht.
  • Verbesserte Lesbarkeit: Umgekehrte Arrays lassen sich oft leichter lesen und verstehen, insbesondere wenn Sie mit großen Arrays oder Arrays mit komplexen Datenstrukturen arbeiten.
  • Optimierte Ausführung: array_flip ist eine integrierte Funktion, die für diese Aufgabe optimiert wurde und manuelle Schlüssel-Wert-Tausch-Schleifen in der Regel übertrifft.

Erstellen einer schnellen Lookup-Tabelle

Die häufigste Verwendung von array_flip besteht darin, eine Liste von Werten in ein Set umzuwandeln, das mit isset() abgefragt werden kann. Da Schlüssel gehasht werden, ist eine isset()-Prüfung auf einem umgekehrten Array O(1) — deutlich schneller als das Durchsuchen der Liste mit in_array() bei einem großen Datensatz.

<?php

$allowed = ["admin", "editor", "viewer"];
$lookup  = array_flip($allowed);

var_dump(isset($lookup["editor"])); // present
var_dump(isset($lookup["guest"]));  // missing

?>

Ausgabe:

bool(true)
bool(false)

Umgang mit doppelten Werten

Wenn zwei Schlüssel im ursprünglichen Array denselben Wert haben, kann das umgekehrte Ergebnis nur einen Eintrag für diesen Wert enthalten — daher gewinnt der letzte Schlüssel, und der frühere wird verworfen:

<?php

$colors = ["red", "green", "blue", "green"];
print_r(array_flip($colors));

?>

Ausgabe:

Array
(
    [red] => 0
    [green] => 3
    [blue] => 2
)

Index 1 (das erste "green") geht verloren, weil Index 3 ihn überschrieben hat. Wenn Sie stattdessen zählen möchten, wie oft jeder Wert vorkommt, verwenden Sie array_count_values(); um Duplikate zu entfernen und dabei die Reihenfolge beizubehalten, verwenden Sie array_unique().

Häufige Anwendungsfälle

  • Erstellen von Lookup-Sets aus einer Liste eindeutiger IDs oder erlaubter Werte für schnelle isset()-Prüfungen.
  • Umkehren eines Wörterbuchs oder einer Zuordnung (z. B. name => id in id => name).
  • Neuanordnung der Elemente eines Arrays als Schlüssel unter Beibehaltung ihrer ursprünglichen Position.

Einschränkungen und Fallstricke

  • Doppelte Werte: Nur der letzte Schlüssel für einen wiederholten Wert bleibt erhalten; frühere Schlüssel gehen verloren (siehe oben).
  • Ungültige Wertetypen: Werte, die weder int noch string sind, können keine Schlüssel werden. Sie erzeugen Warning: Can only flip string and integer values und werden übersprungen, während gültige Paare weiterhin umgekehrt werden.
  • Numerische string-Schlüssel: Wenn ein Wert zu einem Schlüssel wird, wendet PHP normale Array-Schlüsselregeln an — ein numerischer string wie "42" wird zur Ganzzahl 42.

Verwandte Funktionen

  • array_reverse() — kehrt die Reihenfolge der Elemente um (häufig mit dem Vertauschen von Schlüsseln und Werten verwechselt).
  • array_keys() und array_values() — extrahieren nur die Schlüssel bzw. nur die Werte.
  • array_search() — findet den Schlüssel für einen einzelnen Wert, ohne das gesamte Array umzukehren.
  • array_combine() — erstellt ein Array durch Zusammenführen eines Arrays von Schlüsseln mit einem Array von Werten.

Für eine tiefergehende Behandlung von Arrays allgemein, siehe PHP Arrays und Associative Arrays.

Fazit

array_flip tauscht Schlüssel und Werte eines Arrays in einem einzigen, optimierten Aufruf. Die Funktion glänzt, wenn Sie ein schnelles isset()-Lookup-Set benötigen oder eine Zuordnung umkehren möchten — denken Sie nur daran, dass Werte Ganzzahlen oder Zeichenketten sein müssen und dass doppelte Werte auf ihren letzten Schlüssel reduziert werden.

Übungen

Übung
Was ist die Funktion von array_flip() in PHP?
Was ist die Funktion von array_flip() in PHP?
Was this page helpful?