//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);
}
To nie działa, ponieważ zastępuje wartość danych. Jak mogę jednak dodać wartość asocjacyjną do każdej pętli? $file_data
to tablica danych o rozmiarze dynamicznym.
Możesz to po prostu zrobić
$data += array($category => $question);
Jeśli korzystasz z php 5.4+
źródło
before for loop:
$data = array();
następnie w swojej pętli:
$data[] = array($catagory => $question);
źródło
$data=[];
$data[] = [$category => $question];
$res = array(); $res[] = array('foo' => $bar); $foo = $res['foo'];
kończy się niepowodzeniem z Undefined index: foo in .. , ale poniżej sugerowany znak plus działa.Wiem, że to stare pytanie, ale możesz użyć:
array_push($data, array($category => $question));
To popchnie
array
na koniec twojego prąduarray
. Lub jeśli próbujesz tylko dodać pojedyncze wartości na końcu swojej tablicy, a nie więcej tablic, możesz użyć tego:źródło
Dla każdego, kto również musi dodać do tablicy asocjacyjnej 2d, możesz również użyć odpowiedzi podanej powyżej i użyć takiego kodu
$data[$category]["test"] = $question
możesz to wywołać (aby przetestować wynik przez:
echo $data[$category]["test"];
co powinno wypisać $ question
źródło