array_fill_keys est une fonction de tableau très utile dans PHP pour remplir un tableau basé sur la valeur de clé spécifiée. Si vous rencontrez des situations où les résultats et les attentes sont retournés lors de l'utilisation de cette fonction, ne vous inquiétez pas. J'utiliserai un exemple et une explication spécifiques pour vous aider à trouver la cause profonde du problème.
Tout d'abord, jetons un coup d'œil à la syntaxe de base de la fonction array_fill_keys :
array_fill_keys(array $keys, mixed $value): array
$ Keys : un tableau qui doit être une clé de tableau.
$ Value : la valeur correspondant à chaque clé.
Cette fonction renvoie un nouveau tableau dont les clés proviennent du paramètre $ touches , et toutes les valeurs sont remplies de valeur $ .
Regardons une utilisation commune:
<?php
$keys = ['a', 'b', 'c'];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>
La sortie sera:
Array
(
[a] => 10
[b] => 10
[c] => 10
)
En supposant que vous utilisez un code similaire, mais le résultat renvoyé est différent de ce que vous attendez, il peut y avoir plusieurs raisons. Examinons les situations qui peuvent entraîner des incohérences.
Si le tableau de touches $ contient des éléments en double, Array_Fill_keys définira la valeur correspondante de la clé en fonction de la dernière touche en double. Par exemple:
<?php
$keys = ['a', 'b', 'a'];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>
La sortie sera:
Array
(
[a] => 10
[b] => 10
)
Dans le code ci-dessus, «A» est défini à plusieurs reprises deux fois, mais Array_Fill_keys n'en conserve qu'une seule clé «A» et sa valeur est 10 . Cela n'augmente pas d'erreur, mais en raison de l'unicité des clés du tableau, les clés en double seront dédupliquées.
Si le tableau des touches $ que vous passez à Array_Fill_Keys est vide, le tableau renvoyé sera un tableau vide:
<?php
$keys = [];
$value = 10;
$result = array_fill_keys($keys, $value);
print_r($result);
?>
Sortir:
Array
(
)
Dans ce cas, la fonction ne pose aucun problème, mais le résultat n'a pas le contenu attendu.
array_fill_keys Lorsque Array_Fill_keys utilise des clés pour le tableau, le type de nom de clé affectera le résultat. Par exemple, si la clé est un type numérique, array_fill_keys le traite comme une clé entière. Considérez l'exemple suivant:
<?php
$keys = [1, 2, 3];
$value = 'hello';
$result = array_fill_keys($keys, $value);
print_r($result);
?>
Sortir:
Array
(
[1] => hello
[2] => hello
[3] => hello
)
Si la clé est de type de chaîne, elle fera changer l'index du tableau.
Vérifiez si le tableau des clés a des valeurs en double : assurez-vous que le tableau des touches $ n'a pas d'éléments en double. Vous pouvez utiliser Array_Unique () pour le dédupliquer, ou vérifier directement le tableau.
Confirmez le type de clé de tableau : si vous voulez que la clé soit un type de chaîne, vous pouvez vous assurer que les éléments du tableau $ touches sont tous des types de chaînes ou des types de clés.
Débogage et sortie : utilisez var_dump () au lieu de print_r () afin que vous puissiez voir le type de clé et les détails, ce qui aide à identifier les problèmes potentiels.
Array_Fill_keys est une fonction très utile, mais vous devez faire attention au type de clé et à la structure du tableau pour éviter les résultats incohérents causés par des clés en double ou un décalage de type. Si vous constatez que la sortie ne répond pas aux attentes, vous pouvez résoudre le problème des aspects ci-dessus.
J'espère que cet article vous aide! Si vous avez plus de questions, veuillez visiter notre site Web.