2010-03-10 131 views

回答

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 

未经测试,但那应该让你大部分的方式。祝你好运。

+0

爆炸ona“,”不足以解析csv文件。如果任何数据中都有“,”,则表明您已被拧紧。 – 2010-03-10 23:29:38

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文件的信息数组中。

+0

你能提供一个示例代码来看看它是如何工作的。 – Rachel 2010-03-10 23:06:13