簡體   English   中英

關聯數組鍵轉換浮點字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM