[英]Associative Array Key Casting Float String
在我的代碼中,我生成了一個以鍵為浮點數的關聯數組,但是PHP文檔指出,當它們成為數組中的鍵時,應該將其強制轉換為整數。 相反,它們被強制轉換為字符串(這實際上對我來說更好,所以我沒有抱怨)。
問題是,當我嘗試使用浮點數作為鍵值來訪問這些鍵時,它僅將具有.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]++;
處訪問該數組array[1.25]++;
我成功將鍵值1.25加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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.