2010-03-10 9 views
0

У меня есть два файла csv.Как слить два файла csv в php?

Первый файл имеет

дата offerid щелкает заказы

Второй файл имеет

Дата offerid показанное

Как я могу объединить это два CSV-файл программно в PHP?

ответ

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

Exploding ona "," недостаточно для синтаксического анализа файла csv. Если какой-либо из данных имеет «,» в нем, вы ввернуты. –

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 
} 

В результате, вы будете иметь массив A, который имеет информацию из обоих файлов CSV.

+0

Можете ли вы предоставить пример кода, чтобы узнать, как он будет работать. – Rachel

Смежные вопросы