PHP数组:整数索引VS字符串索引

问题描述:

整数索引和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

the manual(重点煤矿):

密钥可以是一个整数或字符串。该值可以是任何类型的 。

此外以下项铸件会发生

  • 含有有效整数字符串将被转换为整数类型。例如。键“8”实际上将被存储在8以下。另一个 手“08”将不会被转换,因为它不是有效的十进制整数。
  • 浮点数也被转换为整数,这意味着小数部分将被截断。例如。密钥8.7将实际 下储存
      8.
    开始=>
  • [...]

那不是的事实,PHP阵列是稀疏相关的。

您可以使用var_dump()来验证所有这一切。