簡體   English   中英

如何從csv中的第1列求和並解析為csv PHP

[英]How to sum values from column 1 from csv and parse to csv PHP

我想解析帶有多個代碼的csv文件,其中有些重復,我需要將其分組並在最后保留unic代碼。

file.csv CSV文件:

code    data
12345   45
12345   35
12346   2
12347   3
12345   5

file2.csv:

code,data
12345,85
12346,2
12347,3

PHP解析CSV文件:

<?php

$tsvFile = new SplFileObject('file.csv');
$tsvFile->setFlags(SplFileObject::READ_CSV);
$tsvFile->setCsvControl("\t");

$file = fopen('file2.csv', 'w');
$header = array('col1', 'col2');
fputcsv($file, $header, ',', '"');

foreach ($tsvFile as $line => $row) {
    if($line > 0) {
        fputcsv($file, array($row[0], $row[1]), ',', '"');
    }
}
fclose($file);

?>

該腳本只是在制表符到逗號之間進行解析,而不是按代碼分組。

任何幫助表示贊賞。

嘗試這個:

$newData = array();
foreach ($tsvFile as $line => $row) {
    if ($line > 0) {
        if (isset($newData[$row[0]])) {
            $newData[$row[0]]+= $row[1];
        } else {
            $newData[$row[0]] = $row[1];
        }
    }
}
foreach ($newData as $key => $value) {
    fputcsv($file, array($key, $value), ',', '"');
}

還沒有測試過,但是應該可以。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM