2016-07-24 12 views
0

Ich habe wirklich Mühe zu erarbeiten, wie bestimmte Spalten von Daten aus einer CSV-Datei in ein Array zu verwandeln. Im Moment kann ich das Ganze in ein Array umwandeln mit:PHP - Bestimmte Spalten aus der CSV-Datei in Array

$csv = array(); 

$lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES); 

foreach ($lines as $key => $value) 
{ 
    $csv[$key] = str_getcsv($value); 
} 

Aber gibt es eine Möglichkeit, nur bestimmte Spalten aus dem Array zu bekommen? Wie die Spalten 1 und 2 oder 1 bis 4? usw.

Das Ziel ist, dies zu tun, damit ich bestimmte Daten in eine Tabelle mit FPDF setzen kann. Womit ich auch kämpfe:/

-So wenn jemand weiß wie man schnell eine schön aussehende Tabelle in FPDF legt, lass es mich bitte wissen. Ich versuche, BasicTable-Funktion von der Website zu verwenden, aber meine Tabelle wird von der Seite gelöscht und sieht nicht gut aus. Es ist das erste Mal, dass ich es benutzt habe, und es läuft ziemlich furchtbar.

Ich weiß, das ist eine Art von 2 Fragen. Aber die erste (im Titel) ist die erste. Danke

Antwort

1

str_getcsv() analysiert eine einzelne Zeile und Sie müssen nur Daten aus der Zeile extrahieren.

$csv = array(); 

$lines = file('../data/StaffData.csv', FILE_IGNORE_NEW_LINES); 

foreach ($lines as $key => $value) 
{ 
    $row = str_getcsv($value); 
    $csv[$key] = array($row[0], $row[1], ..., $row[n]); 
} 

Wo Sie die Spaltennummern, die Sie in array($row[0], $row[1], ..., $row[n]); Michael für die Antwort

1

Sie können explode() in jeder Zeile verwenden, um die Spalte in einem Array zu erhalten. Dann, wenn Sie in $ csv schreiben, wählen Sie einfach was Sie wollen und überspringen Sie, was Sie nicht tun. Diese

for{ 
    $row = explode(",", $line); 
    $csv[$key]['wantedcol1'] = $row[0]; //first col 
    $csv[$key]['wantedcol2'] = $row[2]; //third col 
} 

ist nur ein einfaches kleines Beispiel, das die zweite Spalte aus der Datei wird übersprungen, wie es $ csv zu schreiben.

+0

Dank möchten angeben. Entschuldigung für meine Anschuldigung, aber ich bin mir nicht sicher, was du überhaupt meinst? Hast du ein Beispiel? Oder kann mich auf ein Beispiel hinweisen? Danke –

+0

Dig in die Dokumentation für explode(), ... Sie werden es viel verwenden und es ist ziemlich einfach. Es fragt nach einem Begrenzer und einer Zeichenfolge. In Ihrem Fall, setzen Sie jede Zeile/Zeile und verwenden Sie die Kommas als Ihr Trennzeichen. Es wird diese Zeichenfolge in ein Array verwandeln. Verwenden Sie print_r(), um zu sehen, was explode() ausgibt. Sie können die gewünschten Spalten aus diesem Array auswählen. Mach dir die Hände schmutzig, es geht dir gut. – MichaelClark

+0

Ich habe viele Male zuvor explodieren verwendet, nur nicht in einer solchen Situation. Vielleicht bin ich ein bisschen verwirrt? Ich kann das Array machen, ich will nur wissen, wie man die Spalten aus diesem Array auswählt. Damit es in meinem Tabellengenerator funktioniert, muss es nur diese bestimmten Spalten sein und sonst nichts. Ich weiß, ich kann nur bestimmte Spalten aus einem vollständigen Array drucken, ist das was du sagst? Es ist multidimensional und verwendet Index für alles. Ich hoffe ich mache Sinn? Ich denke, ich habe nur Schwierigkeiten, an den Algorithmus für das zu denken, was du vorschlägst? Danke, –

Verwandte Themen