0

我有这个文件,我想计算每个“ROBxx”的实例数。该文件可以包含数千行。循环槽和计数的最简单方法是什么?

2012.05.08 11:15:49 ROB52 4mm

2012.05.08 11:15:56 ROB42 5mm

2012.05.08 11:15:59 ROB30 4mm

2012.05.08 11:16:01 ROB52 4mm

2012.05.08 11:16:04 ROB42 2mm

2012.05.08 11:16:05 ROB06 4mm

2012.05.08 11:16:06 ROB52 4mm

2012.05.08 11:16:10 ROB52 4mm

2012.05.08 11:16:11 ROB30 3mm

该文件在计数后的结果应该是:

ROB52:4

ROB42:2

ROB30:2

ROB06:1

谢谢!

4

3 回答 3

1
$handle = fopen("input.txt", "r");
$hash = array();
if ($handle) {
        while (($buffer = fgets($handle)) !== false) {
                if(preg_match('/\b(ROB\d+)\b/',$buffer,$m)) {
                        $hash[$m[1]] = (isset($hash[$m[1]])?($hash[$m[1]]+1):1);
                }
        }
        foreach($hash as $k=>$v) {
                print "$k : $v\n";
        }
} else {
        // error openeing file.
}
于 2012-05-10T06:34:59.523 回答
0

首先,使用字符串和整数创建一个二维数组(或列表或其他)。现在您可以遍历每一行并执行以下操作:

剪下“ROBxx”字符串并将其保存为字符串。

检查字符串的二维数组。如果你找到它,增加计数。如果数组中还没有,添加它并将计数设置为 1。

希望这可以帮助。

于 2012-05-10T06:33:38.900 回答
0
$string = file_get_contents(filename)
$count = preg_match_all('/ROB[0-9]{2}/', $string, $aMatches);
于 2012-05-10T06:33:51.457 回答