I dati nell'array vengono sovrascritti perché stai riassegnando il valore di $key
ogni volta che si incontra.
Quello che vuoi fare è creare un array secondario come $key
value e spingi i nodi in quell'array in questo modo otterrai il risultato atteso.
[
'NM1' => ['...', '...'],
'PR1' => ['...', '...']
]
Il codice sarebbe,
while (($row = fgetcsv($handle, 1000, ";", "\"", "\n")) !== FALSE) {
$key = array_shift($row);
// Notice the extra []
$data[$key][] = $row;
}
Ogni chiave ora conterrà un array con un nodo per ogni riga incontrata.