Php iki csv dosyaları birleştirmek için nasıl?

2 Cevap php

Ben iki csv dosyası var.

Birinci Dosya var

tarih offerid emir tıklar

İkinci Dosya var

tarih offerid gösterilir

Nasıl php programlı bu iki csv dosyasını birleştirebilirsiniz?

2 Cevap

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

Denenmemiş, ama bu sana orada yolun en almalısınız. İyi şanslar.

PHP diziler içine bu dosyaların ikisi de okuyun.

Sonra, bir iç içe döngü yapmak

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
}

Sonuç olarak, her ikisi de CSV dosyalarından bilgi var bir dizi A olacak.