次のような CSV ファイルがあります。
State, name, balans
OH, John, 345
OH, Bill, 281
IL, James, 34
OH, James, 45
MA, Bill, 71
OH, Thomas, 541
SC, Pete, 125
AL, Mary, 51
NY, Ivan, 123
MD, Chan, 234
CA, Lee, 181
WI, Juan, 131
AL, Kate, 135
CO, Robert, 215
州ごとに集計された合計残高を取得する必要があります。
出力 file.txt は次のようになります。
OH [Sum of balans]
NY [sum of ballans]
etc
そのような例をインターネットで探していましたが、何も見つかりませんでした。作業できるコード例またはフレームワークが必要です。
私はこのようなことをすべきだと思った:
$inputfile = 'input.csv';
$outputFile = 'output.txt';
$inputHandle = fopen($inputfile, "r");
$outputHandle = fopen($outputFile, 'w');
$balansCol = 2;
while (($dataRow = fgetcsv($inputHandle, 1000, ",")) !== FALSE) {
$sumArray = array();
$sumArray[] = $dataRow;
}
foreach ($sumArray as $subArray) {
foreach ($subArray as $id => $value) {
$sumArray[2] += $value;
}
}
しかし、これは良いアプローチではないと思います...誰かがそれを解決するための比較的簡単な方法を提供できますか?