2016-03-29 14 views
0

Ich frage mich im Grunde, wie bestimmte Zeilen aus einer CSV-Datei erhalten werden (nehmen wir an, die Datei hat 5000 Zeilen Ich möchte die Werte der zweiten Spalte erhalten Zeilen 3023 - 3311). Nach Erhalt dieser Spaltenwerte möchte ich sie in ein PHP-Array einfügen.So geben Sie bestimmte Zeilen aus einer CSV-Datei zurück und setzen sie in Array

Was ich bisher versucht habe:

$search = $this->uri->segment(3); // get the row number  
$row1 = 0; 

    if (($handle = fopen("Folder/Data.csv", "r")) !== FALSE) 
    { 
     while (($data1 = fgetcsv($handle, 1000, ",")) !== FALSE) 
     { 
      $num1 = count($data1); // number of data rows 
      $row1++; 
      for ($c=0; $c < $num1; $c++) { 



       echo $data1[$c+1]; // to return second row 


      } 
     } 
     fclose($handle); 

Aber das nur gibt eine einzelne Zeile, und ich muss zurückkehren rund 200 und in eine Reihe gestellt. Jede Hilfe wird sehr geschätzt!

Antwort

1

Sie sind ziemlich nah dran. Sie müssen keine for Schleife innerhalb Ihrer while Schleife laufen lassen. Sie können so etwas wie folgt verwenden:

$file = fopen('/path/to/file', 'r'); 

// Helps us keep tabs on the row we are on 
$rowCount = 0; 
// Array that stores all of our column values. In this case, I'll be gathering 
// values from the second column 
$secondColumnArray = array(); 
while(false !== ($rowData = fgetcsv($file))){ 
    if($rowCount >= 50 && $rowCount <= 100){ 
     array_push($secondColumnArray, $rowData[1]); 
    } 
    $rowCount = $rowCount + 1; 
} 

print_r($secondColumnArray); 

fclose($file); 

In dem obigen Beispiel meine Array enthält Werte aus der zweiten Spalte der Zeilen 50 bis 100. Ändern Sie die Parameter Ihren Kriterien passen.