Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Impedir a substituição da matriz e, em vez disso, criar um novo índice de matriz


Os dados na matriz estão sendo substituídos porque você está reatribuindo o valor de $key cada vez que é encontrado.

O que você quer fazer é criar um array secundário como o $key value e empurre nós para essa matriz desta forma, você acaba com o resultado esperado.
[
    'NM1' => ['...', '...'],
    'PR1' => ['...', '...']
]

O código seria,
while (($row = fgetcsv($handle, 1000, ";", "\"", "\n")) !== FALSE) {
    $key = array_shift($row);
    // Notice the extra []
    $data[$key][] = $row;
}

Cada chave agora conterá uma matriz com um nó para cada linha encontrada.