Php 扩展assoc数组

Php 扩展assoc数组,php,arrays,Php,Arrays,我想扩展一个assoc数组。 原始数组如下所示 $arr = [[ 'ID' => 0, 'TEXT' => SOME_CONST, 'CHECKED' => $opt_flag, ]]; 有了一个新的条件,我想扩展这个现有的数组 if (defined('MODULE_STATUS') && MODULE_STATUS == 'true') { $arr['JSON_ATTRDATA'] = 1; } 结果是 Array (

我想扩展一个assoc数组。 原始数组如下所示

$arr = [[
  'ID'      => 0,
  'TEXT'    => SOME_CONST,
  'CHECKED' => $opt_flag,
]];
有了一个新的条件,我想扩展这个现有的数组

if (defined('MODULE_STATUS') && MODULE_STATUS == 'true') {
  $arr['JSON_ATTRDATA'] = 1;
}
结果是

Array
(
    [0] => Array
        (
            [ID] => 0
            [TEXT] => text
            [CHECKED] => 1
        )

    [JSON_ATTRDATA] => 1
)

新密钥在嵌套数组之外有什么问题?

您希望
$arr[0]['JSON\u attrdat']=1
现在,如果要附加到父数组,则需要具有键0的子数组,该数组
$arr
已经具有1个对象

通过其索引更改此对象值的步骤

$arr[0] = "anything else"
并添加更多对象

$arr[] = "Another object";
你应致电:

$arr[0]['JSON_ATTRDATA'] = 1;

将向第一个对象添加另一个值

详细信息

$arr
包含数组中的数组。像这样

Array
(
    [0] => Array
        (
            [ID] => 0
            [TEXT] => text
            [CHECKED] => 1
        )
)

因此,当您添加
$arr['JSON\u ATTRDATA']
时,它会添加到第一个数组中

您希望$arr[0]['JSON\u ATTRDATA']=1;包含值的数组是索引0处
$arr
的子数组,因此需要将新键分配给
$arr[0]['JSON\u attrda']
它位于嵌套数组之外,因为您将它插入了嵌套数组之外。如果您对此不清楚,我强烈建议您重新阅读PHP手册,了解数组的工作原理。为什么数组会嵌套在第一位?你真的想要一个二维数组吗?