2014-09-30 139 views
3

整數索引和PHP陣列字符串索引之間的任何差異(當然除了以下事實:將後者稱爲associative array)?PHP數組:整數索引VS字符串索引

因此,例如,什麼是以下兩個陣列之間的差異:

$intIndex[5] = "Hello"; 
$intIndex[6] = "World"; 
$intIndex[7] = "!"; 

而且

$strIndex['5'] = "Hello"; 
$strIndex['6'] = "World"; 
$strIndex['7'] = "!"; 

在第一種情況下,會發生什麼$intIndex[0]$intIndex[4]

+0

它給你一個'未定義的索引0/4' PHP警告。 – TiMESPLiNTER 2014-09-30 11:20:05

+0

@TiMESPLiNTER你能否澄清爲什麼會出現這種錯誤?我認爲在PHP中,不需要變量聲明。 – CluelessNoob 2014-09-30 11:20:51

+1

那麼你沒有在數組中輸入'0'或'4'鍵。這是這個數組中未定義的索引。所以如果你使用'$ intIndex [0]',你會遇到'Undefined index' PHP警告。 – TiMESPLiNTER 2014-09-30 11:21:35

回答

2

the manual(重點煤礦):

密鑰可以是一個整數或字符串。該值可以是任何類型的 。

此外以下項鑄件會發生

  • 含有有效整數字符串將被轉換爲整數類型。例如。鍵「8」實際上將被存儲在8以下。另一個 手「08」將不會被轉換,因爲它不是有效的十進制整數。
  • 浮點數也被轉換爲整數,這意味着小數部分將被截斷。例如。密鑰8.7將實際 下儲存 8.
  • [...]

那不是的事實,PHP陣列是稀疏相關的。

您可以使用var_dump()來驗證所有這一切。