//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);
}
Cela ne fonctionne pas car il remplace la valeur des données. Comment puis-je lui faire ajouter une valeur associative à chaque boucle? $file_data
est un tableau de données de taille dynamique.
Vous pouvez simplement le faire
$data += array($category => $question);
Si vous utilisez php 5.4+
la source
avant la boucle for:
$data = array();
puis dans votre boucle:
$data[] = array($catagory => $question);
la source
$data=[];
$data[] = [$category => $question];
$res = array(); $res[] = array('foo' => $bar); $foo = $res['foo'];
échoue avec l' index non défini: foo in .. , mais le signe plus suggéré ci-dessous fonctionne.Je sais que c'est une vieille question mais vous pouvez utiliser:
array_push($data, array($category => $question));
Cela poussera le
array
à la fin de votre courantarray
. Ou si vous essayez simplement d'ajouter des valeurs uniques à la fin de votre tableau, pas plus de tableaux, vous pouvez utiliser ceci:la source
Pour tous ceux qui ont également besoin d'ajouter dans un tableau associatif 2d, vous pouvez également utiliser la réponse donnée ci-dessus et utiliser le code comme celui-ci
$data[$category]["test"] = $question
vous pouvez alors l'appeler (pour tester le résultat en:
echo $data[$category]["test"];
qui devrait afficher $ question
la source