Datei auslesen und Inhalte zuordnen

wappenhans

Grünschnabel
Guten Tag. Hätte mal wieder ein Problem. Ich habe mir eine csv-Datei mit PHP ausgelesen und lasse mir den Inhalt anzeigen.

Klappt soweit ganz gut, allerdings möchte ich nun, dass er die erste Zeile nicht mit einliest, denn da stehen die Tabellenüberschriften für die Spalten und die brauch ich nicht und zum zweiten hätte ich gerne, dass er die Werte des Array bestimmten Variablen zuordnet.

Also Wert aus Spalte 1 zum Beispiel der Variable $vorname, der aus Spalte 2 der Variable $nachname usw.

Kann mir da mal jemand helfen. Hier das Script:


<?php
$row = 1; // Anzahl der Arrays
$handle = fopen ("nono.csv","r"); // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ";")) !== FALSE ) { // Daten werden aus der Datei
// in ein Array $data gelesen
$num = count ($data); // Felder im Array $data
// werden gezählt
print "<p> $num fields in line $row: <br>\n";
$row++; // Anzahl der Arrays wird
// inkrementiert
for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder
print $data[$c] . "<br>\n"; // des Arrays auszugeben
}
}
fclose ($handle);
?>




THX
 
Mögliche Variante:
verwende die "Spaltenüberschriften" gleich als Variablenname, und hänge dann nur noch eine durchlaufende Ziffer an den Namen ran:
PHP:
<?php
$fp = fopen ("nono.csv","r");
$row=1;
while ($data = fgetcsv ($fp, 1000, ";")) 
    {
        if(!isset($keys))//erste Zeile, Werte werden zur Verwendung als Variablenname gespeichert
            {
                $keys=$data;
            }
        else if(count($data)<=count($keys))//weitere Zeilen
            {
               foreach($data as $key => $value)
                    {
                        ${$keys[$key].$row}=$value;//Variablen erzeugen
                        
                        echo '<br>$'.$keys[$key].$row.'='.${$keys[$key].$row};//zur Kontrolle ausgeben
                    }
               echo '<hr>'; 
               $row++;
            }
        
}
fclose ($fp);
?>
Alternativ kannst du natürlich auch per Hand Variablennamen in $keys[] vermerken, dann musst du nur die erste Zeile überspringen.
 
Zurück