2016-04-18 11 views
0

2つのcsvファイルを比較する必要があります。私が毎日新製品で得る新しいものと、在庫中のすべての製品を含む2番目のもの。 skuを比較して、両方のファイルに同じ製品がある場合はツールがあります。新製品の最初のCSVは、同じSKUを複数回持つことがあります。だから一致がある場合は、新しい列の最初のcsvから2番目のcsvのProd.IDをskuに追加する必要があります。PHPで2 csvを比較し、一致するものがあれば1 csvのデータを追加し、新しいcsvに書き込む

これは以下のように最初のcsvファイルがどのように見えるかです:第二のファイルはので、私は第二のcsvファイルからのすべての一致するSKUにIDを追加する必要があり、この

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

ようlookes

ID  SKU   Cat   Price 
0  12345678 Clothes  10.00 
0  12345678 Clothes  10.00 
0  87654321 Bath  5.00 

最初のCSVファイルをverry新しいCSVファイルに保存して、次のように最後にistを取得します。

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

今すぐ私は次のコードを持っていますが、私は空のupdated.csvを取得します。私はば完全に立ち往生:(

$fp = fopen('updated.csv', 'w'); 

$csvFile1 = "firts-file.csv"; 
$handle1 = fopen($csvFile1, "r"); 

$csvFile2 = "second-file.csv"; 
$handle2 = fopen($csvFile2, "r"); 

while(($data1 = fgetcsv($handle, 20000, ";")) && ($data2 = fgetcsv($handle2, 20000, ";"))) { 
    $oldID = $data1[0]; 
    $newID = $data2[0];  
    if(($data1[1]) == ($data2[1])) { 

     fputs($fp, str_replace($oldID, $newID, "\n")); 
    } 
} 
+0

あなたの2入力ファイルを記述した方法、**は.csvファイルではありません。**私たちは、あなたが実際にこの質問をしていることを理解しておらず、あなたの他の質問は答えられていません。 ** C **はカンマを意味します** S **は分離を意味します** V **は変数を表しますあなたのファイルの説明にはCOMM COMMは含まれません – RiggsFolly

+0

入力を正しく記述し、 OUTPUTSの中であなたは実際に誰かに回答を試みるかもしれません。 – RiggsFolly

+0

入力はcsvです。 OOoやExcelでそれらを開くと、私は上記のようにCoulumnsを取得します。 私が必要とするのは、いくつかの同じSKUがある場合に両方のファイルをチェックし、ファイル1のID「0」をファイルのIDと置き換えて、変更したデータを新しいCSVに保存することです。 – Kallmas

答えて

1

1.csv - $元

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

コード

- $は

ID  SKU   Cat   Price 
0  12345678 Clothes  10.00 
0  12345678 Clothes  10.00 
0  87654321 Bath  5.00 

2.csvを引き起こします10

+0

質問している人や将来の訪問者にとって役に立つ答えを出すために、あなたがしたことの説明と、なぜそれが行われたのかを必ず記入してください。 – miken32

+0

ありがとうございます。完璧に動作します。 混乱した投稿を申し訳ありません。私は最初の投稿を編集しようとしましたが、編集をクリックすると、私はいつも私の2番目の投稿の内容を得ました。 もう一度。あなたはタンクク。 :) – Kallmas

関連する問題