Die Datei test.csv:
Der code:
Die Ausgabe:
Ich habe das jetzt noch um die if-Abfragen erweitert und die trim() Funktion hinzugefügt, damit das \n am Ende der Zeile abgeschnitten wird. Außerdem das explode() auf "," prüfen lassen, und nicht nur auf Komma.
Ein paar kleinere Fehler/Unzulänglichkeiten waren also noch drin, aber im Prinzip funktioniert es.
Die erste gepostete Variante gibt bei mir folgende Ausgabe:
Daran erkennt man, dass die Zeilenumbrüche noch raus müssen und die Anführungszeichen noch nicht entfernt sind. Aber im Prinzip habe ich Dich so verstanden, dass Du so ein Array haben willst.
Wenn nicht, verstehe ich Dich nicht.
Gruß hpvw
EDIT: und nun habe ich wieder getippt, während ein anderer schon gepostet hat, muss mal von meinem 2Finger Suchsystem Abstand nehmen.
NOCH EIN EDIT: mir ist gerade aufgefallen, dass dieser Beitrag mein 100ster ist und mich zum Mitglied Gold katapultiert.
Code:
title1,title2,title3
"data1z1","data2z1","data3z1"
"data1z2","data2z2","data3z2"
Der code:
PHP:
<?
$lines = file("./test.csv");
$array = array();
$headers = explode(',',trim(array_shift($lines)));
foreach($lines as $l) {
$tmp = explode('","',trim($l));
$tmp2 = array();
$i=0;
foreach ($tmp as $t) {
if ($i==0) {
$tmp2[$headers[$i]] = substr($t , 1);
} else if ($i == (sizeof($tmp) - 1)) {
$tmp2[$headers[$i]] = substr($t , 0 , strlen($t) - 1);
} else {
$tmp2[$headers[$i]] = $t;
}
$i++;
}
$array[] = $tmp2;
}
print_r($array);
?>
Die Ausgabe:
Code:
Array
(
[0] => Array
(
[title1] => data1z1
[title2] => data2z1
[title3] => data3z1
)
[1] => Array
(
[title1] => data1z2
[title2] => data2z2
[title3] => data3z2
)
)
Ein paar kleinere Fehler/Unzulänglichkeiten waren also noch drin, aber im Prinzip funktioniert es.
Die erste gepostete Variante gibt bei mir folgende Ausgabe:
Code:
Array
(
[0] => Array
(
[title1] => "data1z1"
[title2] => "data2z1"
[title3
] => "data3z1"
)
[1] => Array
(
[title1] => "data1z2"
[title2] => "data2z2"
[title3
] => "data3z2"
)
)
Wenn nicht, verstehe ich Dich nicht.
Gruß hpvw
EDIT: und nun habe ich wieder getippt, während ein anderer schon gepostet hat, muss mal von meinem 2Finger Suchsystem Abstand nehmen.
NOCH EIN EDIT: mir ist gerade aufgefallen, dass dieser Beitrag mein 100ster ist und mich zum Mitglied Gold katapultiert.
Zuletzt bearbeitet: