2016-06-30 3 views
0

Ich versuche, eine CSV-Datei basierend auf einer anderen CSV-Quelldatei neu zu erstellen. Ich versuche, die ganze Zeile zu überspringen, wenn diese Zeile ein bestimmtes Wort "WORDO" hat. Momentan kann ich nur die Daten, die "WORDO" haben, durch eine leere Zeichenfolge ("") ersetzen. Allerdings würde ich gerne die ganze Reihe überspringen, wenn ein Spiel gefunden wird. Vorerst noch der $ keepColumns Array hält Daten [1] (leer oder nicht) würde ich die ganze Zeile überspringen, wie wenn "Wordo" inside $ data [1]PHP liest CSV und mit FPUTCSV: Wie kann ich die ganze Zeile mit einem If-Bedingung überspringen

<?php 

$finalArray = array(); 
$newFinalData = "new_csv.csv"; 

if (($finalData = fopen("mycsv.csv", "r")) !== FALSE) 
    { 

    $newfile = fopen($newFinalData, 'w'); 

    while (($data = fgetcsv($finalData, 999999, ",",'"')) !== FALSE) 
     { 

     //If the 1st column has WORDO as text, ideally skip the whole row 
     if(substr($data[1], 0, 5) === "WORDO") { 
      $data[1] = ""; 
     } 

     $keepColumns = array(

      $data[0], 
      $data[1], 
      $data[2], 
      $data[5] 

     ); 

     fputcsv($newfile, $keepColumns, ";",'"'); 
     } 
    fclose($finalData); 
    fclose($newfile); 
    } 


?> 
+3

das Wort 'fortzusetzen;' – Farkie

Antwort

2

sollten Sie das Stichwort verwenden continue wahrsten Sinne des Wortes auf die nächste Iteration überspringen:

 if(substr($data[1], 0, 5) === "WORDO") { 
      $data[1] = ""; 
      continue; 
     } 
+1

übrigens 'Daten $ [1] = "";' irrelevant wird, wenn du gehst einfach weiter. –

+0

Und ich würde wahrscheinlich 'if (strpos ($ data [1]," WORDO ") === 0)' – AbraCadaver

+0

Er könnte es später verwenden, man kann nie wissen. – Farkie

Verwandte Themen