Maison  >  Article  >  développement back-end  >  Les valeurs des clés du tableau php peuvent-elles être répétées ?

Les valeurs des clés du tableau php peuvent-elles être répétées ?

PHPz
PHPzoriginal
2023-04-19 09:18:37523parcourir

Un tableau en PHP est une structure de données très courante qui vous permet de stocker un ensemble de données ensemble et d'accéder à ces données en utilisant différents types de valeurs clés telles que des nombres ou des chaînes. Lorsque vous travaillez avec des tableaux PHP, vous pouvez rencontrer une question : est-il possible de stocker plusieurs valeurs en utilisant la même clé ? Cet article répondra à cette question et présentera quelques concepts et techniques connexes.

Tout d'abord, il doit être clair que le tableau de PHP est un tableau associatif, qui peut mapper des valeurs clés à n'importe quel type de valeur. Cela signifie que chaque clé ne peut correspondre qu'à une seule valeur. Si vous essayez de stocker plusieurs valeurs avec la même clé, la nouvelle valeur écrasera l'ancienne valeur. Par exemple :

$fruits = array(
  'apple' => 'red',
  'banana' => 'yellow',
  'apple' => 'green'
);

echo $fruits['apple']; // 输出 green

Dans l'exemple ci-dessus, lorsque nous ajoutons 'apple' => 'green' au tableau $fruits, cela écrase l'ancien 'apple' => 'red' . Ainsi, lorsque nous imprimons $fruits['apple'], il renverra « vert », pas « rouge ».

En effet, en PHP, si vous ajoutez un nouvel élément en utilisant la même clé de chaîne, le nouvel élément remplacera l'ancien élément. En effet, PHP traite les clés du tableau comme des clés dans une table de hachage, et si le code de hachage de la nouvelle valeur est le même que le code de hachage de l'ancienne valeur, la nouvelle valeur remplacera l'ancienne valeur. Cela signifie également que si vous essayez d'ajouter des éléments à plusieurs reprises à l'aide de clés entières, les nouveaux éléments seront ajoutés à la fin du tableau au lieu de remplacer les anciennes valeurs.

En plus des clés de chaîne utilisées dans les exemples ci-dessus, PHP prend également en charge d'autres types de clés, notamment les entiers, les nombres à virgule flottante, les booléens, les objets, etc. Étant donné que PHP convertit toutes les clés en chaînes, vous risquez de rencontrer des problèmes si vous essayez d'ajouter des éléments avec différents types de clés. Par exemple :

$fruits = array(
  'apple' => 'red',
  0 => 'hello',
  1.5 => 'world',
  true => 'yes',
  new stdClass() => 'object'
);

print_r($fruits);

Dans l'exemple ci-dessus, nous essayons d'ajouter des éléments en utilisant différents types de clés comme entier, flottant, booléen et objet. Cependant, si vous exécutez le code ci-dessus, vous verrez que tous les éléments sont ajoutés au tableau, mais que les clés sont converties en chaînes. Par exemple, l'entier 0 sera converti en chaîne « 0 », le float 1,5 sera converti en chaîne « 1,5 », le booléen true sera converti en chaîne « 1 » et l'objet sera converti en chaîne « 0 ». chaîne '[objet]stdClass'.

Dans certains cas, vous devrez peut-être stocker plusieurs valeurs avec des clés en double. Pour réaliser cette fonction, vous pouvez utiliser une autre structure de données PHP - un tableau multidimensionnel (tableau multidimensionnel). Les tableaux multidimensionnels peuvent imbriquer plusieurs tableaux ensemble et chaque tableau peut avoir des clés du même type.

Par exemple, l'exemple suivant montre comment utiliser un tableau multidimensionnel pour stocker plusieurs couleurs :

$fruits = array(
  'apple' => array('red', 'green'),
  'banana' => array('yellow')
);

print_r($fruits);

Dans l'exemple ci-dessus, nous avons créé un tableau $fruits avec deux éléments, où chaque élément est un tableau, en utilisant Pour stocker la couleur des fruits . Nous pouvons désormais accéder à une couleur spécifique en utilisant une clé telle que :

echo $fruits['apple'][0]; // 输出 red
echo $fruits['apple'][1]; // 输出 green
echo $fruits['banana'][0]; // 输出 yellow

Lors de l'utilisation de tableaux multidimensionnels, nous devons être conscients que le stockage de plusieurs valeurs à l'aide de tableaux imbriqués augmentera la complexité du code et pourrait rendre le code plus difficile à comprendre et à entretenir. Par conséquent, si vous pouvez utiliser d’autres structures de données pour stocker plusieurs valeurs, vous devez éviter si possible les clés en double.

En résumé, le tableau de PHP est un tableau associatif, qui ne permet pas de stocker plusieurs valeurs avec la même clé. Si vous devez stocker plusieurs valeurs, vous pouvez envisager d'utiliser un tableau multidimensionnel ou une autre structure de données pour ce faire. Dans le même temps, lorsque vous utilisez différents types de clés, vous devez noter que PHP convertira automatiquement les clés en chaînes, ce qui peut provoquer des erreurs et des problèmes inutiles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn