▽1
●
tobeoscontinue ベストアンサー |
<?php function str_quote($ary, $c=',', $t="\n") { $str = ''; foreach ($ary as $k=>$v) $str .= $k.$c.$v.$t; return $str; } $csv = []; foreach(file('a.csv') as $line) { list($fruit, $local, $value) = explode(',', trim($line)); $name = $fruit.','.$local; $csv["$name"] = (array_key_exists($name, $csv) ? $csv["$name"]: 0)+intval($value); } file_put_contents('hoge.cvs', str_quote($csv));
1列目と2列目が同じものというのは1列目と2列目を結合して1列目とすることで
http://q.hatena.ne.jp/1465916346 と同一になります。
ファイルに出力するために$csvを文字列化する関数str_quoteとしました。
制限:a.csvで数字の後にカンマがあるので4列になっていますが無視しています。
またファイルに出力する最は後ろにカンマをつけていないので必要ならstr_quoteの
$k.$c.$v.$t;の部分を
$k.$c.$v.$c.$t;とする必要があります。