Dans PHP, Array_Fill () est une fonction couramment utilisée qui crée un tableau de longueur spécifiée et attribue une valeur spécifiée à chaque élément du tableau. Bien qu'il soit idéal pour créer des tableaux indexés, il échoue souvent lors de la création de tableaux associatifs, ce qui fait que les développeurs sont confus. Cet article analysera en détail les problèmes courants lors de la création de tableaux associatifs à l'aide d'Array_Fill () et de fournir des solutions.
La fonction Array_Fill () est utilisée pour remplir un tableau et accepte trois paramètres:
array_fill(int $start_index, int $num, mixed $value): array
$ start_index : l'indice de départ du tableau.
$ num : le nombre d'éléments à remplir.
$ Valeur : la valeur utilisée pour remplir le tableau.
array_fill () est souvent utilisé pour générer des réseaux d'index numériques unidimensionnels. Par exemple:
$array = array_fill(0, 5, 'PHP');
print_r($array);
Cela crée un tableau commençant par l'index 0 et contient 5 éléments, chacun avec une valeur de «php» . La sortie est la suivante:
Array
(
[0] => PHP
[1] => PHP
[2] => PHP
[3] => PHP
[4] => PHP
)
Bien que Array_Fill () soit très pratique lors de la création de tableaux indexés, il ne peut pas être utilisé directement pour créer des tableaux associatifs. En effet Lorsque vous utilisez array_fill () , PHP traite l'index en tant que nombre, il est donc impossible de créer directement un tableau associatif.
Par exemple, le code suivant échouera:
$array = array_fill('key1', 3, 'value');
print_r($array);
Le but de ce code est de créer un tableau associatif avec le nom de clé «Key1» , mais il lance une erreur car array_fill () accepte uniquement les index entiers.
Erreur de type d'index
array_fill () ne s'applique qu'aux tableaux avec des index numériques. Lorsque vous essayez de remplir un tableau avec un index de chaîne, la fonction échoue en raison de la décalage de type.
Nombre d'éléments de tableau <br> Lorsque vous utilisez Array_Fill () , le deuxième paramètre $ NUM représente la longueur du tableau et doit être un entier positif. Si un nombre qui ne répond pas aux exigences (tels que des nombres négatifs ou des zéros) est fourni, l'exécution de la fonction échouera.
Utilisez array_fill_keys () pour créer un tableau associatif
Si vous devez créer un tableau associatif, vous pouvez utiliser la fonction array_fill_keys () . Il vous permet de spécifier le nom de clé d'un tableau associatif et de lui attribuer une valeur. Par exemple:
$keys = ['key1', 'key2', 'key3'];
$value = 'PHP';
$array = array_fill_keys($keys, $value);
print_r($array);
Ce code sera sorti:
Array
(
[key1] => PHP
[key2] => PHP
[key3] => PHP
)
Créer manuellement des tableaux associatifs à l'aide de boucles
Si vous souhaitez utiliser une logique différente pour remplir un tableau, vous pouvez utiliser Foroach ou pour des boucles pour créer un tableau associatif manuellement. Par exemple:
$keys = ['key1', 'key2', 'key3'];
$value = 'PHP';
$array = [];
foreach ($keys as $key) {
$array[$key] = $value;
}
print_r($array);
La sortie sera la même que Array_Fill_keys () .
Utilisez array_map () avec array_keys ()
Une autre solution consiste à utiliser la fonction array_map () en conjonction avec array_keys () pour générer un tableau associatif. Par exemple:
$keys = ['key1', 'key2', 'key3'];
$value = 'PHP';
$array = array_combine($keys, array_fill(0, count($keys), $value));
print_r($array);
Ce code fusionne le nom de la clé avec la valeur rembourrée via array_combine () pour générer un tableau associatif.
La fonction Array_Fill () est un outil très utile en PHP, mais il ne convient pas à la création de tableaux associatifs. Si vous devez créer un tableau associatif, vous pouvez utiliser array_fill_keys () ou créer une boucle manuellement. En comprenant ses limites, nous pouvons utiliser Array_Fill () plus efficacement pour résoudre des problèmes pratiques.