我有这个文件,我想计算每个“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
谢谢!
答案 0 :(得分: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.
}
答案 1 :(得分:0)
首先,使用String和整数创建一个二维数组(或列表或其他)。现在,您可以遍历每一行并执行以下操作:
剪下“ROBxx”字符串并将其另存为字符串。
检查字符串的二维数组。如果你找到它,增加计数。如果尚未在数组中,请添加它并将计数设置为1.
希望这有帮助。
答案 2 :(得分:0)
$string = file_get_contents(filename)
$count = preg_match_all('/ROB[0-9]{2}/', $string, $aMatches);