2013-06-20 83 views
0

在我的代碼中,我已經生成了一個關鍵字爲浮點數組的關聯數組,但是PHP文檔指出,當它們成爲數組中的關鍵字時,它們被連接以轉換爲整數。相反,他們被轉換爲字符串(這實際上對我更好,所以我不抱怨)。關聯數組關鍵字鑄造浮點字符串

問題是,當我嘗試使用float作爲鍵值訪問這些鍵時,它僅將帶有.5的浮點數轉換爲整數,並在數組中創建一個新條目。看起來像奇特的行爲。

實施例:

var_dump($array); 

輸出:

array(9) { 
[0] => 
int(0) 
[1.25] => 
int(0) 
[2.5] => 
int(0) 
....} 

當嘗試訪問該值2.5像這樣,

array[2.5]++; 

陣列中的新條目在array[2]製成 但是,如果我嘗試訪問數組array[1.25]++; 我成功添加1到鍵的值:1.25

任何想法?

+1

從文檔:'浮標也被轉換爲整數,這意味着小數部分會截斷。例如。關鍵字8.7實際上將被存儲在8以下。' – stackErr

+0

'array [1.25] ++'將不起作用,就像'array [2.5] ++'一樣。 'array [「1.25」] ++'會。你確定你嘗試過的代碼? – Jon

+0

是的,字符串工作謝謝! – bombadil

回答

1

我只想用繩子堅持所有的時間:

$a = array(
    '0' => 0, 
    '1.25' => 0, 
    '2.5' => 0 
); 

$a['2.5']++; 
echo $a['2.5'] . "\n"; 
var_dump($a); 

輸出是:

1 
array(3) { 
    [0]=> 
    int(0) 
    ["1.25"]=> 
    int(0) 
    ["2.5"]=> 
    int(1) 
} 
+0

是的,這工作謝謝!我會給你+1,但不幸的是我太新了 – bombadil