文本文件中重复的PHP计数
所以我有一个文本文件,上面有人们输入的游戏列表,所有这些都在一个新的页面上,比如:文本文件中重复的PHP计数,php,file,text,count,duplicates,Php,File,Text,Count,Duplicates,所以我有一个文本文件,上面有人们输入的游戏列表,所有这些都在一个新的页面上,比如: <tr><td>proatowning</td><td>Final Fantasy X</td></tr> <tr><td>drunkenveteran</td><td>Trials Evolution</td></tr> <tr><td>Fin
<tr><td>proatowning</td><td>Final Fantasy X</td></tr>
<tr><td>drunkenveteran</td><td>Trials Evolution</td></tr>
<tr><td>Final Fantasy X</td><td>5</td></tr>
<tr><td>Trials Evolution</td><td>3</td></tr>
现在我想要的是某种代码,它允许我计算重复项,并返回重复项的使用次数
例如:
5人提交最终幻想X。
3人提交进化试验
然后它应该返回如下内容:
<tr><td>proatowning</td><td>Final Fantasy X</td></tr>
<tr><td>drunkenveteran</td><td>Trials Evolution</td></tr>
<tr><td>Final Fantasy X</td><td>5</td></tr>
<tr><td>Trials Evolution</td><td>3</td></tr>
这样我就可以在桌子上用了。如果它只能显示前10名投票最多、重复最多的游戏,那就太棒了
谢谢。我想您正在寻找类似的东西,只需拉出第二个标记,检查它是否已经在数组中,如果已经在数组中,则添加到计数,如果没有,则向数组中添加一个元素。然后在末尾输出数组
$lines = file('myfile.txt');
$games = array();
foreach ($lines as $line_num => $line) {
$pos = strpos($line,'<td>',8);//start the search for <td> after first one
$game = substr($line,$pos);
$game = substr($game,4,-4);//remove the <td> tags
foreach($games as $name => &$count){
if ($game == $name) $count++;
else $games[$game] = 1;
}
}
foreach($games as $name => $count){
echo "<b>".$count."</b> people submitted \"".$name."\"\n";
}
我重新编写并简化了Optox answer中的代码,它对我有效:
$lines = file('myfile.txt');
$games = array();
foreach ($lines as $line_num => $line) {
$pos = strpos($line,'<td>',8);//start the search for <td> after first one
$game = substr($line,$pos);
$game = substr($game,4,-4);//remove the <td> tags
if (array_key_exists($game,$games) $games[$game] += 1;
else $games[$game] = 1;
}
foreach($games as $name => $count){
echo "<b>".$count."</b> people submitted \"".$name."\"\n";
}
您是否将数据存储在某种数据库或XML中?我只是有点担心你正在使用HTML表格作为存储。这是一个每周都会被清除的列表,人们通过文本框进入游戏并存储到文本文件中。嗯,出于某种原因,它什么也没有显示。最终幻想XX PrutoOutin最终幻想席还没有测试过,你可能需要做一些改变,但是这会让你朝正确的方向发展。如果没有显示,那么可能是语法错误。是的,但我相信这就是我要找的,非常感谢!