Dans PHP, la fonction array_flip () est utilisée pour échanger des touches et des valeurs dans un tableau. Sa fonction de base est de prendre les clés d'un tableau sous forme de valeurs et la valeur d'un tableau sous forme de clés. Supposons qu'il y ait un tableau comme celui-ci:
$array = [
'a' => 1,
'b' => 2,
'c' => 3
];
Après avoir appelé array_flip ($ array) , le résultat sera:
$flippedArray = [
1 => 'a',
2 => 'b',
3 => 'c'
];
Pendant l'utilisation de array_flip () , si la valeur du tableau contient un type spécial de données, telles que la chaîne nul , false ou vide, elle peut affecter le résultat inversé. Ci-dessous, nous discuterons du comportement de ces trois valeurs spéciales dans array_flip () en détail.
Si une valeur dans le tableau est nul , array_flip () prendra null comme clé. Plus précisément, NULL dans PHP sera traité comme une chaîne vide. En d'autres termes, plusieurs valeurs nulles se traduiront par la même clé, et finalement une seule clé sera conservée. Par conséquent, s'il y a des valeurs nulles en double dans le tableau, le résultat inversé n'aura qu'une seule clé.
$array = [
'a' => null,
'b' => null
];
$flippedArray = array_flip($array);
print_r($flippedArray);
Le résultat de la sortie est:
Array
(
[0] => b
)
Comme vous pouvez le voir, bien qu'il y ait deux valeurs nuls dans le tableau d'origine, après FLIP, NULL est traité comme 0 et B l'emporte sur A.
Pour une valeur fausse , array_flip () le convertit en entier 0 . Semblable à NULL , FALSE est traité comme une clé avec une valeur spécifique, donc s'il y a plusieurs fausses valeurs dans le tableau, il y aura un conflit clé après le retournement, ce qui ne résultera que la dernière paire de valeurs clés retenue.
$array = [
'a' => false,
'b' => false
];
$flippedArray = array_flip($array);
print_r($flippedArray);
Le résultat de la sortie est:
Array
(
[0] => b
)
Ici, False est converti en 0 , B écrase A , donc le tableau inversé n'a qu'une seule clé 0 .
Lorsqu'une chaîne vide ( "" ) est utilisée comme valeur de tableau, array_flip () le traite comme une clé. Étant donné que les chaînes vides peuvent être utilisées comme des clés comme d'autres valeurs, s'il y a plusieurs valeurs de chaîne vides dans le tableau, elles seront également en conflit, et à la fin, seule la clé de la dernière chaîne vide est conservée.
$array = [
'a' => '',
'b' => ''
];
$flippedArray = array_flip($array);
print_r($flippedArray);
Le résultat de la sortie est:
Array
(
[] => b
)
Dans le tableau inversé, une chaîne vide est traitée comme une clé ( [] signifie une chaîne vide) et B écrase a .
Le comportement de array_flip () lors de la rencontre d'une valeur spéciale est résumé comme suit:
La valeur nulle sera traitée comme 0 , et plusieurs valeurs nulles provoqueront des conflits clés, ne laissant que la dernière clé.
La fausse valeur sera convertie en un entier 0 , et plusieurs fausses valeurs entraîneront également des conflits clés, laissant la dernière clé.
Lorsqu'une chaîne vide ( "" ) est utilisée comme valeur, elle sera considérée comme une clé. Plusieurs chaînes vides auront des conflits clés, et seule la clé de la dernière chaîne vide sera conservée.
Par conséquent, lorsque vous utilisez array_flip () , si le tableau contient ces valeurs spéciales, une attention particulière doit être accordée à la question des conflits clés. Pour éviter les conflits inutiles, il est recommandé de vérifier le type de valeur de tableau avant d'utiliser array_flip () pour s'assurer qu'il n'y a pas de valeurs spéciales indésirables.