Da programmiere ich seit bald 15 Jahren mit PHP, doch erst vor wenigen Wochen habe ich realisiert, dass Arrays keine Floats als Schlüssel unterstützen. Variablen mit Fliesskommazahlen können zwar durchaus als Schlüssel gesetzt werden, werden in der Folge aber in Integer-Werte umgewandelt. Dies führt dazu, dass Schlüssel wie ‚3.3‘ sowie ‚3.4‘ zu ‚3‘ umgewandelt werden und der Variablenwert dementsprechend überschrieben wird:
Working with an array with periods in key values
Wer die Fliesskommazahlen zwingend benötigt, muss diese zuerst in Strings umwandeln:
... $key = 3.3; $keyValid = (string)$key; $array[$key] = 'One'; $array[$keyValid] = 'Two'; var_dump($array); ...
Via: ToString() equivalent in PHP
ergibt:
array(2) { [3]=> string(3) "One" ["3.3"]=> string(3) "Two" }