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
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_flipkann 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_flipist 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 => idinid => 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
intnochstringsind, können keine Schlüssel werden. Sie erzeugenWarning: Can only flip string and integer valuesund 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 Ganzzahl42.
Verwandte Funktionen
array_reverse()— kehrt die Reihenfolge der Elemente um (häufig mit dem Vertauschen von Schlüsseln und Werten verwechselt).array_keys()undarray_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.