数组密钥无法加入

Yai*_*lar 0 php arrays key

我对数组的键有一点问题.该数组如下所示:

Array
(
    [1] => Array
        (
            ["question"] => test question 1
            ["open_response"] => 1
        )

    [2] => Array
        (
            ["question"] => test question 2
            ["yes_no"] => 1
        )

)
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,每当我尝试访问$data['1']['question']它时,告诉我问题不是索引.我对此有点困惑,因为它应该是关键但不是,我该如何解决这个问题?或者我如何访问它?

The*_*iac 5

你要:

$data[1]['question']
Run Code Online (Sandbox Code Playgroud)

不:

$data['1']['question']
Run Code Online (Sandbox Code Playgroud)

编辑:

我的回答并没有解决他的问题,而是帮助他找到了实际的问题.上面的两个片段完全相同,因为如果字符串是有效整数,PHP会将字符串键转换为整数.国际海事组织,它令人困惑如地狱.如果我使用字符串键入我的数组,dag`nammit它应该用字符串键入,即使该字符串也可以解析为int!

相关文档可在此处找到:

密钥可以是整数或字符串.值可以是任何类型.

此外,还会发生以下关键演员:

  1. 包含有效整数的字符串将强制转换为整数类型.例如,键"8"实际上将存储在8下.另一方面,"08"将不会被转换,因为它不是有效的十进制整数.
  2. 浮点数也会转换为整数,这意味着小数部分将被截断.例如,密钥8.7实际上将存储在8下.
  3. Bool也会被转换为整数,即键值true实际上将存储在1下,键值false则在0下.
  4. Null将被转换为空字符串,即键null实际上将存储在""下.
  5. 数组和对象不能用作键.这样做会导致警告:非法偏移类型.