Mittwoch, 3. Juni 2015

PHP erlaubt keine Floats als Array-Schlüssel

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"
}

Liked this post? Follow this blog to get more. 

Tags: , , , , , , , ,
Labels: Uncategorized

Kommentar erfassen