Datan i arrayen skrivs över eftersom du omtilldelar värdet för $key
varje gång den påträffas.
Vad du vill göra är att skapa en sekundär array som $key
värde och tryck in noder i den arrayen så att du får ditt förväntade resultat.
[
'NM1' => ['...', '...'],
'PR1' => ['...', '...']
]
Koden skulle vara,
while (($row = fgetcsv($handle, 1000, ";", "\"", "\n")) !== FALSE) {
$key = array_shift($row);
// Notice the extra []
$data[$key][] = $row;
}
Varje nyckel kommer nu att innehålla en array med en nod för varje rad som påträffas.