Data v poli se přepisují, protože měníte přiřazení hodnoty $key
pokaždé, když na něj narazíte.
Co chcete udělat, je vytvořit sekundární pole jako $key
hodnotu a vložte uzly do tohoto pole, takže skončíte s očekávaným výsledkem.
[
'NM1' => ['...', '...'],
'PR1' => ['...', '...']
]
Kód by byl,
while (($row = fgetcsv($handle, 1000, ";", "\"", "\n")) !== FALSE) {
$key = array_shift($row);
// Notice the extra []
$data[$key][] = $row;
}
Každý klíč bude nyní obsahovat pole s uzlem pro každý nalezený řádek.