In PHP wird die Funktion array_flip () verwendet, um Schlüssel und Werte in einem Array auszutauschen. Seine grundlegende Funktion besteht darin, die Schlüssel eines Arrays als Werte und den Wert eines Arrays als Schlüssel zu nehmen. Angenommen, es gibt ein Array wie dieses:
$array = [
'a' => 1,
'b' => 2,
'c' => 3
];
Nach dem Aufrufen von Array_flip ($ Array) wird das Ergebnis sein:
$flippedArray = [
1 => 'a',
2 => 'b',
3 => 'c'
];
Während der Verwendung von Array_flip () kann sich der Wert des Arrays wie null , falsche oder leere Zeichenfolge auf das umgedrehte Ergebnis auswirken. Im Folgenden werden wir das Verhalten dieser drei speziellen Werte in array_flip () im Detail diskutieren.
Wenn ein Wert im Array null ist, nimmt Array_flip () Null als Schlüssel. Insbesondere wird Null in PHP als leere Zeichenfolge verarbeitet. Mit anderen Worten, mehrere Nullwerte führen zu demselben Schlüssel, und schließlich wird nur ein Schlüssel beibehalten. Wenn im Array doppelte Nullwerte vorhanden sind, hat das umgedrehte Ergebnis nur einen Schlüssel.
$array = [
'a' => null,
'b' => null
];
$flippedArray = array_flip($array);
print_r($flippedArray);
Das Ausgangsergebnis ist:
Array
(
[0] => b
)
Wie Sie sehen können, wird Null nach dem Flip nach dem Flip zwei Nullwerte im ursprünglichen Array überschreibt, und B als 0 und B überschreibt a .
Für den falschen Wert konvertiert Array_flip () es in Integer 0 . Ähnlich wie bei NULL wird Falsch als Schlüssel mit einem bestimmten Wert behandelt. Wenn also mehrere falsche Werte im Array vorhanden sind, wird nach dem Flippen einen Schlüsselkonflikt vorhanden, was dazu führt, dass nur das letzte Schlüsselwertpaar aufbewahrt wird.
$array = [
'a' => false,
'b' => false
];
$flippedArray = array_flip($array);
print_r($flippedArray);
Das Ausgangsergebnis ist:
Array
(
[0] => b
)
Hier wird False in 0 , B überschreibt A umgewandelt, sodass das umgedrehte Array nur einen Schlüssel 0 hat.
Wenn eine leere Zeichenfolge ( "" ) als Array -Wert verwendet wird, behandelt Array_flip () ihn als Schlüssel. Da leere Saiten als Schlüssel wie andere Werte verwendet werden können, werden sie auch im Array in mehreren leeren Zeichenfolgenwerten konflikt, und am Ende bleibt nur der Schlüssel der letzten leeren Zeichenfolge erhalten.
$array = [
'a' => '',
'b' => ''
];
$flippedArray = array_flip($array);
print_r($flippedArray);
Das Ausgangsergebnis ist:
Array
(
[] => b
)
In dem umgedrehten Array wird eine leere Schnur als Schlüssel behandelt ( [] bedeutet eine leere Zeichenfolge), und B überschreibt a .
Das Verhalten von array_flip () bei der Begegnung mit einem besonderen Wert wird wie folgt zusammengefasst:
Der Nullwert wird als 0 behandelt, und mehrere Nullwerte verursachen wichtige Konflikte, so dass nur der letzte Schlüssel bleibt.
Der falsche Wert wird in eine Ganzzahl 0 konvertiert, und mehrere falsche Werte verursachen auch Schlüsselkonflikte, so dass der letzte Schlüssel bleibt.
Wenn eine leere Zeichenfolge ( "" ) als Wert verwendet wird, wird er als Schlüssel angesehen. Mehrere leere Saiten haben wichtige Konflikte, und nur der Schlüssel der letzten leeren Zeichenfolge wird beibehalten.
Wenn das Array diese besonderen Werte enthält, sollte bei Verwendung von Array_flip () besondere Aufmerksamkeit auf die Frage von Schlüsselkonflikten geschenkt werden. Um unnötige Konflikte zu vermeiden, wird empfohlen, den Array -Wert zu überprüfen, bevor Array_flip () verwendet wird, um sicherzustellen, dass keine unerwünschten besonderen Werte vorliegen.