12
votes

Travailler avec un tableau avec des périodes de valeurs clés

Je reçois des données d'un tableau. Pour une raison quelconque, la matrice a des valeurs essentielles telles que [3.3] dont j'ai du mal à récupérer des données de.

J'ai ce tableau [3.3] => Prénom [3.6] => Nom [2] => Email@example.com . .

Lorsque j'essaie d'appeler $ Array [3.3] Il renvoie NULL, mais lorsque j'appelle $ Array [2] Je suis donné l'e-mail. Des idées?


0 commentaires

6 Réponses :


29
votes

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'];


2 commentaires

Une chose: si votre "3.0" est par hasard dans une variable (c'est-à-dire $ x = '3.0'; ) et que vous essayez de faire $ myarr [$ x] = " Wow! ", vous devez faire quelque chose comme $ myarr [" '{$ x}' "] =" wow! ". Juste mes 5 cents ...


Pour la clé étant référencée par une variable, cela a fonctionné pour moi: $ myarr ["$ x"]



2
votes

Je suppose que cela a quelque chose à TOOD avec le PHP Autocasting 3.3 => Float

Essayez $ TRAY ['3.3']


0 commentaires

17
votes

du manuel PHP:

Les flotteurs de la clé sont tronqués pour entier.

Vous essayez donc d'obtenir une array $ [3] qui n'existe pas, alors vous obtenez NULL


1 commentaires

J'aime php mais c'est l'une des choses les plus stupides de tous les temps.




2
votes

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
)


0 commentaires

0
votes

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: xxx


0 commentaires