Добавление элемента в ассоциативный массив
//go through each question
foreach($file_data as $value) {
//separate the string by pipes and place in variables
list($category, $question) = explode('|', $value);
//place in assoc array
$data = array($category => $question);
print_r($data);
}
это не работает, так как он заменяет значение данных. Как я могу добавить ассоциативное значение в каждый цикл? $file_data - это массив данных, который имеет динамический размер.
5 ответов:
Я думаю, что вы хотите
$data[$category] = $question;или в случае, если вы хотите массив, который отображает категории в массив вопросов:
$data = array(); foreach($file_data as $value) { list($category, $question) = explode('|', $value, 2); if(!isset($data[$category])) { $data[$category] = array(); } $data[$category][] = $question; } print_r($data);
Вы можете просто сделать это
$data += array($category => $question);Если вы работаете на php 5.4+
$data += [$category => $question];
Я знаю, это старый вопрос, но вы можете использовать:
array_push($data, array($category => $question);это будет толкать
arrayна конец текущегоarray. Или если вы просто пытаетесь добавить отдельные значения в конец массива, а не больше массивов, то вы можете использовать это:array_push($data,$question);
для тех, кому также нужно добавить в 2d ассоциативный массив, вы также можете использовать ответ, приведенный выше, и использовать такой код
$data[$category]["test"] = $questionзатем вы можете вызвать его (чтобы проверить результат:
echo $data[$category]["test"];который должен напечатать $question
Comments