Je reçois des données d'un tableau. Pour une raison quelconque, la matrice a des valeurs essentielles telles que J'ai ce tableau Lorsque j'essaie d'appeler [3.3] code> dont j'ai du mal à récupérer des données de. P>
[3.3] => Prénom [3.6] => Nom [2] => Email@example.com Code>. P>.
$ Array [3.3] code> Il renvoie NULL, mais lorsque j'appelle
$ Array [2] code> Je suis donné l'e-mail. Des idées? P>
6 Réponses :
Utilisez des guillemets simples lorsque vous référencez la valeur de la clé (Traitez-la essentiellement comme une chaîne, c'est ce que PHP est probablement en train de faire)
echo $array['3.3'];
Une chose: si votre "3.0" est par hasard dans une variable (c'est-à-dire $ x = '3.0'; code>) et que vous essayez de faire
$ myarr [$ x] = " Wow! " Code>, vous devez faire quelque chose comme
$ myarr [" '{$ x}' "] =" wow! " Code>. Juste mes 5 cents ...
Pour la clé étant référencée par une variable, cela a fonctionné pour moi: $ myarr ["$ x"] code>
Je suppose que cela a quelque chose à TOOD avec le PHP Autocasting 3.3 => Float P>
Essayez $ TRAY ['3.3'] P>
du manuel PHP: P>
Les flotteurs de la clé sont tronqués pour entier. p> blockQuote>
Vous essayez donc d'obtenir une array $ [3] qui n'existe pas, alors vous obtenez NULL P>
J'aime php mais c'est l'une des choses les plus stupides de tous les temps.
Une clé peut être un entier ou une chaîne. Si une clé est la représentation standard d'un entier, il sera interprété comme tel (c'est-à-dire interprété comme 8, tandis que "08" sera interprété comme "08"). Les flotteurs de la clé sont tronqués à des nombres entiers. strong> Les types de réseau indexé et associatif sont le même type de PHP, qui peuvent tous deux contenir des indices entier et de chaîne. P> blockQuote>
"" 8 "sera interprété comme 8." Il convient de noter que sur les plates-formes où INT utilise 32 bits, lorsque la chaîne est dans la représentation standard d'un entier qui nécessite plus de 32 bits (par exemple "3206519370"), il restera en tant que clé à chaîne et ne sera pas convertie en int (qui aboutirait à déborder).
floats forts> et chaîne numérique forte> dans la clé est tronqué pour entier fort>. p> SE SUPPORTER CE CODE: P>
Array ( [1] => d )
J'ai eu un problème similaire lors de l'ajout d'éléments dans une matrice à l'aide des touches de flotteur - PHP écrasait les valeurs existantes (la clé 1.2 a été écrasée par 1,5, etc.).
basé sur ce thread i Clé à la chaîne: p>