Arbeiten mit einem Array mit Punkten in Schlüsselwerten

8

Ich erhalte Daten von einem Array. Aus irgendeinem Grund hat das Array Schlüsselwerte wie [3.3] , bei denen ich Probleme beim Abrufen von Daten habe.

Ich habe dieses Array [3.3] => First Name [3.6] => Last Name[2] => [email protected] .

Wenn ich versuche, $array[3.3] aufzurufen, gibt es null zurück, aber wenn ich $array[2] anrufe, bekomme ich die E-Mail. Irgendwelche Ideen?

    
BandonRandon 27.12.2010, 22:20
quelle

5 Antworten

21

Verwenden Sie einfache Anführungszeichen, wenn Sie den Schlüsselwert referenzieren (behandeln Sie ihn im Grunde wie eine Zeichenfolge, was PHP wahrscheinlich macht)

%Vor%     
Brad Christie 27.12.2010, 22:23
quelle
13

Aus dem php-Handbuch:

  

Floats in Schlüssel werden auf Integer abgeschnitten.

Sie versuchen also, $ array [3] zu erhalten, das nicht existiert, also erhalten Sie Null

    
Mironor 27.12.2010 22:26
quelle
8
  

Ein Schlüssel kann entweder eine Ganzzahl oder eine Zeichenfolge sein. Wenn ein Schlüssel die Standarddarstellung einer ganzen Zahl ist, wird er als solcher interpretiert (d. H. "8" wird als 8 interpretiert, während "08" als "08" interpretiert wird). Floats in Schlüssel werden auf Integer abgeschnitten. Die indizierten und assoziativen Array-Typen sind in PHP derselbe Typ, der Integer- und String-Indizes enthalten kann.

Da ein float immer als Integer abgeschnitten würde (z. B. würde 3,3 immer von dem Array als 3 interpretiert werden), frage ich mich, ob Ihr Array einen String erwartet, nicht einen float. Haben Sie $ array ["3.3"] anstelle von $ array [3.3] probiert?

    
GSP 27.12.2010 22:26
quelle
2

Ich denke, es hat etwas mit dem autocasting von PHP 3.3 = & gt; float

probiere $ array ['3.3']

aus     
Michele 27.12.2010 22:24
quelle
0
  

Floats und numerischer String im Schlüssel werden auf ganze Zahl gekürzt.

Gib also diesen Code aus:

%Vor%

wäre:

%Vor%     
Alexey Nazarov 24.08.2017 08:40
quelle

Tags und Links