如何使用Php比较多个csv文件 [英] How can I compare Multiple csv File By Using Php

查看:86
本文介绍了如何使用Php比较多个csv文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想读取多个数据并比较两个数据,并希望将其保存为新的csv文件

我的代码:

I want to read multiple data and compare both data and also want to save it as new csv file
my code:

<?php

$handle = fopen("others.csv", "r");


// Now check file 2 for matches
$handle = fopen("new.csv", "r");

// Grab the header row from the file first
$header = fgetcsv($handle, 1000);

echo "<pre>Header data\n";
print_r($header);
header("content-type: text/plain");
$array = [];
$i = 0;
$csv1 = "new.csv";
$csv2 = "others.csv";

// Load file 1 into an array
// Skip row 1
if (($handle = fopen($csv1, "r")) !== FALSE){
    while (($data = fgetcsv($handle)) !== FALSE){
        if($i == 0){$i++; continue;}
        $array[] = $data;
        $i++;
    }
    fclose($handle);
}

$i = 0;
// Load file 2 into the array if the values don't exist
// Skip row 1


if (($handle = fopen($csv2, "r")) !== FALSE){
    while (($data = fgetcsv($handle)) !== FALSE){
        if($i == 0){$i++; continue;}
        $inarray = false;
        foreach($array as $itm){
            if(in_array($data[1], $itm)){
                $inarray = true;
                break;
            }
        }
        if(!$inarray){
            $array[] = $data;
        }
        $i++;
    }
    fclose($handle);

}


print_r($array);
?>
?>



new.csv:

ID产品名称价格优惠价格

1帮宝适活性婴儿小号尿布153 99

2舒适连帽婴儿毛巾101 100

3婴儿油102 101

4锐刷103 102

5康宝莱重新能量饮料混合物 - 柠檬104 103

6红牛能量饮料542 104

7圣马力诺白葡萄饮料106 105

9 Paper Boat Kokum Drink Juice 108 107

10 Organa果汁饮料清爽,苹果109 108

11 Tropicana石榴喜悦果汁250 222
12 Mantra有机芒果汁251 223

13 Ceres满月收获果汁252 224

14种西班牙番茄酱Tango 253 225



others.csv :

ID产品名称品牌报价中价图像状态

1 Pampers活性宝宝小号尿布Amer ican Tourister 100 99 imagemedium.png活跃

2舒适连帽婴儿毛巾Cornitos 101 100 imagemedium.png活跃

3婴儿油Falero 102 101 imagemedium.png活跃

4 sharp brush Gala 103 0 imagemedium.png活跃

5康宝莱全新能量饮料混合 - 柠檬Gatorade 104 103 imagemedium.png活跃

7圣马力诺白葡萄饮料约翰逊& Johnson 106 105 imagemedium.png活跃

9 Paper Boat Kokum Drink Juice Palmer 108 107 imagemedium.png活跃

10欧加水果饮料清爽,苹果红牛109 108 imagemedium.png活跃

11 Tropicana石榴喜悦果汁Stute 250 222 imagemedium.png活跃

12 Mantra有机芒果汁American Tourister 251 223 imagemedium.png无效

13 Ceres满月收获果汁Cornitos 252 224 imagemedium.png无效

14种西班牙番茄探戈Falero 253 225 imagemedium.png活动


new.csv:
ID product name Price offer price
1 Pampers Active Baby Small Size Diapers 153 99
2 Cosy Hooded Baby Towel 101 100
3 Baby Oil 102 101
4 sharp brush 103 102
5 Herbalife Afresh Energy Drink Mix - Lemon 104 103
6 Red Bull Energy Drink 542 104
7 San Marino White Grape Drink 106 105
8 Ankerite Glucose Energy Drink (Orange) 107 106
9 Paper Boat Kokum Drink Juice 108 107
10 Organa Fruit Drink Refreshing, Apple 109 108
11 Tropicana Pomegranate Delight Fruit Juice 250 222
12 Mantra Organic Mango Juice 251 223
13 Ceres Full Moon Harvest Juice 252 224
14 Lays Spanish Tomato Tango 253 225

others.csv:
ID product name brand Price offer price medium image status
1 Pampers Active Baby Small Size Diapers American Tourister 100 99 imagemedium.png Active
2 Cosy Hooded Baby Towel Cornitos 101 100 imagemedium.png Active
3 Baby Oil Falero 102 101 imagemedium.png Active
4 sharp brush Gala 103 0 imagemedium.png Active
5 Herbalife Afresh Energy Drink Mix - Lemon Gatorade 104 103 imagemedium.png Active
6 Red Bull Energy Drink Goodies 105 104 imagemedium.png Active
7 San Marino White Grape Drink Johnson& Johnson 106 105 imagemedium.png Active
8 Ankerite Glucose Energy Drink (Orange) Nestle 107 106 imagemedium.png Active
9 Paper Boat Kokum Drink Juice Palmer 108 107 imagemedium.png Active
10 Organa Fruit Drink Refreshing, Apple Red Bull 109 108 imagemedium.png Active
11 Tropicana Pomegranate Delight Fruit Juice Stute 250 222 imagemedium.png Active
12 Mantra Organic Mango Juice American Tourister 251 223 imagemedium.png Inactive
13 Ceres Full Moon Harvest Juice Cornitos 252 224 imagemedium.png Inactive
14 Lays Spanish Tomato Tango Falero 253 225 imagemedium.png Active

推荐答案

handle = fopen( others.csv r);


// 现在检查文件2是否匹配
handle = fopen("others.csv", "r"); // Now check file 2 for matches


handle = fopen( new.csv r);

// 首先从文件中抓取标题行
handle = fopen("new.csv", "r"); // Grab the header row from the file first


header = fgetcsv(
header = fgetcsv(


这篇关于如何使用Php比较多个csv文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆