如何从换行符(\ n)分隔的文件中获取最常出现的单词数组?
示例文件:
person
person
dog
cat
person
lemon
orange
person
cat
dog
dog
文件中的文字没有特别的顺序。
我如何使其表现如下?
echo $ top [0]; //输出:人
echo $ top [1]; //输出:狗
等...
提前致谢!
答案 0 :(得分:7)
$lines = file("theFile.txt");
var_dump(array_count_values($lines));
http://php.net/array_count_values
要从结果数组中获取第一个元素(出现次数最多的单词),可以执行以下操作:
$arr = array("person", "person", "cat", "dog", "cat");
$newArr = array_count_values($arr);
echo key($newArr); // "person"
答案 1 :(得分:0)
我可能会使用这样的东西:
没有真正测试,但这样的事情应该有用,我想:
(如果你的文件很大,应该比array_count_values()
更好:不需要将整个文件加载到内存中)
$words = array();
$f = fopen('your_file', 'r');
while ($line = fgets($f)) {
$word = trim($line);
if (isset($words[$words])) {
$words[$words]++;
}
else {
$words[$words] = 1;
}
}
asort($words);
现在,$words
数组中的第一个键是最常用的单词 - 相应的值是您在文件中看到的次数。