csv-Datei auslesen und in Array speichern
Flo
- php
0 Klawischnigg0 Tom0 jobo
Ich habe schon mehrere Varianten ausprobiert, aber ich komme nicht wirklich zum gewollten Ergebnis.
Und zwar habe ich eine .csv-Datei mit im Kopf der Datei Benennungen. Ich möchte in der ersten Zeile die Benennungen auslesen und in ein Array speichern. Die rechtlichen Daten auch in ein Array.
Auslesen möchte ich die Daten mit z.B. $data[0][Name], $data[0][Vorname] etc. und für die nächste Zeile eben $data[1][Name]...
Kann mir bitte jemand weiterhelfen?
Vielen Dank
Flo
Hi there,
Kann mir bitte jemand weiterhelfen?
Ja.
.
.
.
.
.
.
.
.
.
.
.
.
Und jetzt: was geht denn nicht?
Hello,
unter
http://selfhtml.bitworks.de/snippets/dateien_auslesen/arbeiten_mit_csv-dateien/
findest Du eine Funktion, die CSV-Dateien ausliest.
Ich habe sie noch nicht genügend dokumentiert. Muss ich noch nachholen.
Frag also, wenn Du 'was nicht verstehst.
Es ist manchmal günstiger, das Datenarray anders herum aufzubauen, also
$_data['name'][1]
$_data['vorname'][1]
$_data['passwort'][1]
$_data['name'][2]
$_data['vorname'][2]
$_data['passwort'][2]
Die Funktion macht das so, wenn man Spaltennamen angegeben hat oder auf true gesetzt hat.
Vorteile sind:
Nachteil:
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
test.csv:
vorname,name,alter
bob,mayer,14
alina,mueller,18
<?php
$fh = fopen("test.csv","r");
$colNamesRead = false;
$rowCount = 0;
while($row = fgetcsv($fh)) {
if (!$colNamesRead) {
$colNames = $row;
$colNamesRead = true;
} else {
foreach ($row as $colNr => $cellValue) {
$table[$rowCount][$colNames[$colNr]] = $cellValue;
}
}
$rowCount++;
}
var_dump($table);
gibt:
array(2) {
[1]=>
array(3) {
["vorname"]=>
string(3) "bob"
["name"]=>
string(5) "mayer"
["alter"]=>
string(2) "14"
}
[2]=>
array(3) {
["vorname"]=>
string(5) "alina"
["name"]=>
string(7) "mueller"
["alter"]=>
string(2) "18"
}
}
Gruß
jobo