如何在php中合并两个csv文件?

时间:2010-03-10 22:49:37

标签: php csv merge

我有两个csv文件。

第一个文件有

date offerid点击订单

第二个文件

显示日期报价

如何在php中以编程方式合并这两个csv文件?

2 个答案:

答案 0 :(得分:0)

在PHP中将这两个文件读入数组。

然后,做一个嵌套循环

for (all items in array A) {
  find a matching item in array B
  set properties from item from array B on the item in array A
}

因此,您将拥有一个包含两个CSV文件信息的阵列A.

答案 1 :(得分:0)

class DataRow extends Object {
    var $date;
    var $offerid;
    var $clicks;
    var $orders;
    var $shown;
}

function getMatchingRow($date, $offerid, $rows){
    foreach($rows as $myRow){
        if($myRow->date == $date && $myRow->offerid == $offerid){
            return $myRow;
        }
    }
    return null;
}

$rows = array();
$complete_rows = array();

$first = file('FirstFile.csv');
$second = file('SecondFile.csv');

foreach($first as $line){
    $row = new DataRow();
    $parts = explode(',',$line);
    $row->date = $parts[0];
    $row->offerid = $parts[1];
    $row->clicks = $parts[2];
    $row->orders = $parts[3];
    $rows[] = $row;
}

foreach($second as $line){
    $parts = explode(',',$line);
    $row = getMatchingRow($parts[0],$parts[1],$rows);
    if(!is_null($row){
        $row->shown = parts[2];
    } 
    $complete_rows[] = $row;
}

// loop over $completed_rows and write each to a new file

未经测试,但这应该可以让你在那里大部分时间。祝你好运。