//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);
}
Esto no funciona ya que reemplaza el valor de los datos. Sin embargo, ¿cómo puedo hacer que agregue un valor asociativo en cada bucle? $file_data
es una matriz de datos que tiene un tamaño dinámico.
Simplemente puedes hacer esto
$data += array($category => $question);
Si está ejecutando php 5.4+
fuente
antes de bucle:
$data = array();
luego en tu bucle:
$data[] = array($catagory => $question);
fuente
$data=[];
$data[] = [$category => $question];
$res = array(); $res[] = array('foo' => $bar); $foo = $res['foo'];
falla con un índice indefinido: foo in .. , pero el signo más sugerido debajo funciona.Sé que esta es una pregunta antigua, pero puedes usar:
array_push($data, array($category => $question));
Esto empujará
array
al final de su corrientearray
. O si solo está tratando de agregar valores únicos al final de su matriz, no más matrices, puede usar esto:fuente
Para cualquiera que también necesite agregar a una matriz asociativa 2d, también puede usar la respuesta dada anteriormente y usar el código como este
$data[$category]["test"] = $question
luego puede llamarlo (para probar el resultado mediante:
echo $data[$category]["test"];
que debería imprimir $ pregunta
fuente