Ankündigung

Einklappen
Keine Ankündigung bisher.

2 CSV Dateien vergleichen und bei Übereinstimmung zusammenführne und speichern

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 2 CSV Dateien vergleichen und bei Übereinstimmung zusammenführne und speichern

    Hallo,

    ich habe folgendes Problem.
    Und zwar habe ich 2 CSV Dateien in denen sich die gleich Anzahl Spalten, aber nicht die gleiche Anzahl Zeilen befinden.
    In beiden sind in identischen Spalten auch ggf. identische Daten. Diese möchte ich prüfen und wenn welche gefunden sind möchte ich das bei jeder Übereinstimmung die ID aus Datei 1 gegen die ID aus Datei 2 getauscht wird.
    in etwa so.

    CSV1:
    Code:
    ID         SKU             Cat              Price
    1          12345678      Clothes        10.00
    2          12345678      Clothes       10.00
    3          87654321      Bath             10.00

    CSV 2sieht etwa so aus:
    Code:
    ID           SKU             Cat              Price
    327         12345678      Clothes        10.00
    512          87654321      Bath             10.00

    Und das Ergebnis in einer neuen CSV sollte dann so aussehen:
    Code:
    ID         SKU             Cat              Price
    327          12345678      Clothes        10.00
    327          12345678      Clothes       10.00
    512          87654321      Bath             10.00


    Ich kann mir zwar den Inhalt beider Dateien anzeigen lassen, aber die neu erstellte CSV bleibt dabei leer.

    PHP-Code:
    $row 0;
    $fp fopen('updated.csv''w');

    $csvFile "Daten1.csv";
    $firstRowHeader true;
    $maxRows 20000;

    $handle fopen($csvFile"r");
    $counter 0;

    echo 
    "<table class="csvTable">";

    while((
    $data fgetcsv($handle20000";")) && ($counter $maxRows)) {

      echo 
    "<tr>";

      if((
    $counter == 0) && $firstRowHeader) {

        echo 
    "<th>EID</th>";
        echo 
    "<th>SKU</th>";
        echo 
    "<th>Cat</th>";
        echo 
    "<th>Price</th>";

      } else {

        echo 
    "<td>".$data[0]."</td>";
        echo 
    "<td>".$data[1]."</td>";
        echo 
    "<td>".$data[2]."</td>";
        echo 
    "<td>".$data[3]."</td>";
        echo 
    "<td>".$data[4]."</td>";

      }

      echo 
    "</tr>";

      
    $counter++;

    }  

    echo 
    "</table>";  

    $csvFile2 "Daten2.csv";
    $firstRowHeader2 true;
    $maxRows2 20000;

    $handle2 fopen($csvFile2"r");
    $counter2 0;

    echo 
    "<table class="csvTable">";

    while((
    $data2 fgetcsv($handle220000";")) && ($counter2 $maxRows2)) {

      echo 
    "<tr>";

      if((
    $counter2 == 0) && $firstRowHeader2) {

        echo 
    "<th>ID</th>";
        echo 
    "<th>SKU</th>";
        echo 
    "<th>Cat</th>";
        echo 
    "<th>Price</th>";

      } else {

        echo 
    "<td>".$data2[0]."</td>";
        echo 
    "<td>".$data2[1]."</td>";
        echo 
    "<td>".$data2[2]."</td>";
        echo 
    "<td>".$data2[3]."</td>";
        echo 
    "<td>".$data2[4]."</td>";

      }
      echo 
    "</tr>";

      
    $counter2++;

    }

    echo 
    "</table>";  

    $oldID $data1[0];
    $newID $data2[0];  
    $data =$data2;

    if(
    $data[1] == $data2[1]){
      
    fputs($fpstr_replace($oldID$newID$data2 ."\n"));
    }

    fclose($fp); 
    Ich bin da mit meinem bisschen (PHP)Latain am ende.

  • #2
    http://phpforum.de/forum/showthread.php?t=283164

    Kommentar


    • #3
      und: http://www.php-resource.de/forum/php...speichern.html


      Bitte beachten: http://www.php.de/articles/regeln-un...renrichtlinien -> "Anmerkungen zu Multipostings"


      [MOD: Geschlossen]
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar

      Lädt...
      X