Я бы, вероятно, использовал что-то вроде этого:
- читать файл построчно, добавляя +1 к элементу массива каждый раз, когда слово обнаруживается, подсчитывая для каждого слова, сколько раз оно быловидел
- сортировка этого массива.
Не проверено, но что-то вроде этого должно работать, я полагаю:
(должно работать лучше, чем 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
слово - и соответствующее значение - это количество раз, которое оно было просмотрено в вашем файле.