//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);
}
Isso não está funcionando, pois substitui o valor dos dados. Como posso fazer com que ele adicione um valor associativo a cada loop? $file_data
é uma matriz de dados de tamanho dinâmico.
Você pode simplesmente fazer isso
$data += array($category => $question);
Se você estiver executando em php 5.4+
fonte
antes do loop:
$data = array();
então em seu loop:
$data[] = array($catagory => $question);
fonte
$data=[];
$data[] = [$category => $question];
$res = array(); $res[] = array('foo' => $bar); $foo = $res['foo'];
falha com índice indefinido: foo in .. , mas o sinal de mais sugerido abaixo funciona.Eu sei que esta é uma pergunta antiga, mas você pode usar:
array_push($data, array($category => $question));
Isso empurrará o
array
para o fim de sua correntearray
. Ou se você está apenas tentando adicionar valores únicos ao final de sua matriz, não mais matrizes, então você pode usar isto:fonte
Para qualquer um que também precise adicionar em 2d array associativo, você também pode usar a resposta dada acima e usar o código como este
$data[$category]["test"] = $question
você pode então chamá-lo (para testar o resultado:
echo $data[$category]["test"];
que deve imprimir $ question
fonte