Вывести строки из файла которые чаще всего повторяются по айди

145
28 ноября 2019, 19:50

Всем привет, помогите сделать вывод строк из файла в популярном порядке. Т.е. вывести 5 строк у которых АЙДИ повторяется больше к примеру в текстовом файле есть записи... 1540453963|ЛОГИН|ТЕКСТ|АЙДИ|ИП|10:52|КОМУ|

допустим их 15 но из этих 15-ти есть 3 у которых одинаковый АЙДИ, тогда вывести эту строку с таким же АЙДИ.

Что то на подобии Рейтинга (Топа записей).

Сделал пока вывод только последних... Вот так:

$a=file("news_text.txt");
$c=count($a);
$p=0;
$outputs.="<table border=0 cellspacing=0 align=center><tr>";
$nn=0;
for($i=$c-1;$i>=0;$i--) {     
$n=$c-$i; if($n<=$p*6 || $n>($p+1)*6) continue;
$nn++; 
$x=explode("|",$a[$i]);
$outputs.="<td align=center width=130 height=130>$x[3]</td>";
}
$outputs.="</tr></table>";
Answer 1

Прочитать файл в массив, сгруппировать по ID, отсортировать и выбрать срез (5-ть элементов):

$filename = ''; // Путь к текст.файлу
$result = [];
foreach (file($filename, 6) as $line) {
    $id = explode('|', $line)[0];
    $result[$id][] = $line;
}
usort($result, function($a, $b){ return $b <=> $a; });
$result = array_map(function($a){ return $a[0]; }, array_slice($result, 0, 5));
var_dump($result);
READ ALSO
Изменить расширение файла в REQUEST_URI

Изменить расширение файла в REQUEST_URI

Как можно получить php-скриптом часть REQUEST_URI без расширения html, htm, php и тп?

123
В чем ошибка в коде с if и else?

В чем ошибка в коде с if и else?

Выводит на экран в любом случае "Введите коректное число1" Код на PHP :

96
Объединение 4 таблиц Laravel MySQL

Объединение 4 таблиц Laravel MySQL

Я начал изучать фреймворк Laravel 58 и столкнулся с проблемой

88