PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   2 CSV Dateien vergleichen und bei Übereinstimmung zusammenführne und speichern (https://www.php-resource.de/forum/php-developer-forum/105557-2-csv-dateien-vergleichen-und-bei-ubereinstimmung-zusammenfuehrne-und-speichern.html)

kallmas 18-04-2016 22:09

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
0      12345678    Clothes    10.00
0      12345678    Clothes    10.00
0      87654321    Bath        5.00

CSV 2sieht etwa so aus:

Code:

ID    SKU        Cat        Price
321    12345678    Clothes    10.00
532    87654321    Bath        5.00

Und das Ergebnis in einer neuen CSV sollte dann so aussehen:

Code:

ID      SKU        Cat        Price
321    12345678    Clothes    10.00
321    12345678    Clothes    10.00
532    87654321    Bath        5.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. :(

h3ll 18-04-2016 23:05

2 CSV Dateien vergleichen und bei Übereinstimmung zusammenführne und speichern - PHP Forum: phpforum.de

2 CSV Dateien vergleichen und bei Übereinstimmung zusammenführne und speichern - php.de

wahsaga 19-04-2016 08:57

Crossposting ist unerwünscht

*close*


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:17 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG