Я работаю с многомерным массивом, к которому я хочу условно добавить ключи, и не получаю желаемый результат. В основе проблемы лежит следующий код:
$data[$CSVKey] = array (
'key1' => $key1value,
);
$data[$CSVKey] = array (
'key2' => $key2value,
);
Когда я буду работать с массивом позднее, я ожидаю, что будет многомерный массив с ключом 1 и ключом 2, но я этого не понимаю. когда я работаю с ним, я вижу только «key2». Однако, когда я изменяю это на это:
$data[$CSVKey] = array (
'key1' => $key1value,
'key2' => $key2value,
);
Я вижу массив, как я хочу. Разве я не могу заполнить многомерный массив таким образом?
Вы заменяете любое значение $data[$CSVKey]
каждый раз, когда вы назначаете новый массив.
Вам следует просто продолжить использовать обозначения в скобках, чтобы присвоить свои значения:
$data[$CSVKey]['key1'] = $key1value;
$data[$CSVKey]['key2'] = $key2value;
Или вы могли бы использовать array_merge()
если вы хотите добавить более одного элемента в массив за один вызов:
$data[$CSVKey] = array_merge($data[$CSVKey], ['key1' => $key1value, 'key2' => $key2value])
Других решений пока нет …