我需要比較兩個csv文件。我每天都會購買新產品,第二款產品包含所有庫存產品。 我有工具,如果他們在兩個文件中通過比較sku是相同的產品。帶有新產品的首款csv可能會有幾次相同的sku。因此,如果有匹配比我需要將第二個csv中的Prod.ID添加到新列中第一個csv中的sku。在PHP比較2 csv中,如果匹配並且寫入新的csv,則從1 csv添加數據
這是第一個CSV的樣子:
ID SKU Cat Price
0 12345678 Clothes 10.00
0 12345678 Clothes 10.00
0 87654321 Bath 5.00
第二個文件lookes這樣
ID SKU Cat Price
321 12345678 Clothes 10.00
532 87654321 Bath 5.00
,所以我需要從第二CSV將ID添加到所有匹配的SKU在首先csv並將其保存爲verry new 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"));
}
}
你描述你的2個輸入文件的方式,**他們不是.csv文件**所以,因爲我們不明白你實際上問這個問題,你的其他問題沒有得到答案。 ** C **表示逗號** S **表示分隔** V **表示變量您的文件描述包含NOT COMMAS – RiggsFolly
如果您可以再次嘗試正確描述INPUTS和您想要的內容以及格式的輸出,你實際上可能會有人試圖回答 – RiggsFolly
輸入是csv。如果我在OOo或Excel中打開它們,我會得到如上所述的Coulumns。 我需要的是檢查兩個文件,如果有一些相同的SKU,並且如果是這樣,比文件1中的ID'0'用文件中的ID替換爲每個匹配並將改變的數據保存到新的csv。 – Kallmas