Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verhindern Sie das Überschreiben von Arrays und erstellen Sie stattdessen einen neuen Array-Index

Die Daten im Array werden überschrieben, da Sie den Wert von $key neu zuweisen jedes Mal, wenn es angetroffen wird.

Was Sie tun möchten, ist ein sekundäres Array als $key zu erstellen value und verschieben Sie Knoten in dieses Array, so erhalten Sie Ihr erwartetes Ergebnis.

[
    'NM1' => ['...', '...'],
    'PR1' => ['...', '...']
]

Der Code wäre,

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

Jeder Schlüssel enthält nun ein Array mit einem Knoten für jede angetroffene Zeile.