PHP在2个时间点写入多维数组

kam*_*id2 0 php arrays multidimensional-array

我正在使用一个多维数组,我想有条件地添加键,并没有得到我想要的输出.该问题的核心是以下代码:

$data[$CSVKey] = array (
    'key1' => $key1value,
);

$data[$CSVKey] = array (
    'key2' => $key2value,
);
Run Code Online (Sandbox Code Playgroud)

当我稍后使用数组时,我期望会发生的是会有一个带有键1和键2的多维数组,但我没有得到它.当我使用它时,我只看到'key2'.但是,当我将其更改为:

$data[$CSVKey] = array (
    'key1' => $key1value,
    'key2' => $key2value,
);
Run Code Online (Sandbox Code Playgroud)

我按照我的意愿看到阵列.我不能用这种方式填充多维数组吗?

Geo*_*rge 5

$data[$CSVKey]每次分配新阵列时都要替换任何值.

您应该继续使用括号表示法来分配您的值:

$data[$CSVKey]['key1'] = $key1value;
$data[$CSVKey]['key2'] = $key2value;
Run Code Online (Sandbox Code Playgroud)

或者,array_merge()如果您想在一次调用中向阵列添加多个元素,则可以使用:

$data[$CSVKey] = array_merge($data[$CSVKey], ['key1' => $key1value, 'key2' => $key2value])
Run Code Online (Sandbox Code Playgroud)