この種の構造に似たものを含むファイルが与えられました。
12345 ABC 100M 001 2.0 ABC 1010 4510 A01 451 Apple, Johnny A 150
12345 ABC 100M 011 2.0 ABC 1010 4510 A01 451 Apple, Johnny A 80
12345 ABC 100 011 2.0 ABC 1010 4510 A01 451 Apple, Johnny A 80
このファイルから次のセクションを取得する必要があります。
- それらが類似している場合は、3番目の列(つまり100M)をグループ化します
- 4番目の列を合計します(3番目の列と同じグループにある場合)
- 4番目の列に応じて最後の列を合計します
私はなんとか次のことをすることができました:
$List1 = array();
$grab = fopen("file.txt", "r") or die("Can't open file");
$check = fgets($grab);
while(!feof($grab)) {
if (ereg("^[[:digit:]]{5} +ABC +([[:digit:]]{3}[[:alpha:]]?)+ ([[:digit:]]{3})",
$check, $output)) {
if (!in_array($output[1], $List1)) {
array_push($List1, $output[1]);
}
if (!in_array($output[2], $List1)) {
array_push($List1, $output[2]);
}
}
$check = fgets($grab);
}
fclose($grab);
foreach ($List1 as $list) {
print "$list <br/>";
}
私はなんとかして3番目の列をグループ化することができました。
4番目の列が表示されていますが、同じグループにある場合、3番目の列にグループ化する方法がわかりません。
そして、ファイル/配列の最後のビットを簡単に取得する方法がわかりません。ファイルの最後を取得して追加するためのショートカットはありますか?
私を助けてくれる人に事前に感謝します。