我得到了一个包含类似于这种结构的文件:
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
我需要从这个文件中获取以下部分:
- 如果它们相似,则将第三列(即 100M)组合在一起
- 将第四列加在一起(如果它们与第三列在同一组中)
- 根据第四列将最后一列相加
我设法做到了以下几点:
$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/>";
}
我设法以某种方式将第三列组合在一起。
正在显示第四列,但如果它在同一组下,我不确定如何将它组合到第三列中。
而且我不确定如何轻松获取文件/数组中的最后一位。有没有捷径可以获取文件中的最后一个并将它们相加?
提前感谢任何可以帮助我的人。