Да смотрел, задача заключалась посчитать парные слова, и вывести топ 10 самых частых. Задача решена: Код (PHP): function rec($text) { $stemmer = new Lingua_Stem_Ru(); $text = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $text); $text = preg_replace('/[^\p{L}0-9 ]/iu',' ', $text); $text = preg_replace('#\s*?\r?\n\s*?(?=\r\n|\n)#s', "", $text); while ( strpos($text,' ')!==false ) { $text = str_replace(' ',' ',$text); }; $ex = explode(' ', $text); $str_count = array(); for ($i = 0; $i < count($ex); $i++) { $str_count[$ex[$i]]['count'] = 0; for ($j = 0; $j < count($ex); $j++) { if ($ex[$i] == $ex[$j]) { $str_count[$ex[$i]]['count'] ++; } } } arsort($str_count); //сортируем // по совету Ganzal срезаем массив //оставляем нужное количество $str_count = array_slice($str_count, 0, 10); //return $str_count; //возвращаем результат echo "<div align='center'><table border='1' colspan='2'><caption><b>Топ 10 слов :</b></caption> <tr><td align='center'><b>Слово</b></td> <td align='center' ><b>Кол-во:</b></td></tr><tr>"; foreach ($str_count as $key=>$value) { echo "<td>".$stemmer->stem_word($key)."</td><td>".$value['count']."</td></tr>"; } echo "</table></div></body></html>"; } rec($text); } Алгоритм такой:1- сначала считаем повторяющее слова, 2-сортируем массив по ключу, 3-затем выводим последние 10 элементов массива.
New_neo, хоть мое решение было не из лучших, но там было полное решение твоей задачи. Нафиг ты прилепил к нему код сверху?) и вообще, лучше если функция возвращает данные, а с этими данными потом делай что хочешь. Ну к примеру передай функции которая будет выводить таблицу с форматированием.
Не совсем тебя я понял?! Чего я там не правильно сделал? На экране я проверял результат тот что надо. Принимаю все замечания. Я ведь только учусь. А как говорят -на ошибках учатся, я не против.
делаешь двойную работу. Код (PHP): $stemmer = new Lingua_Stem_Ru(); $text = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $text); $text = preg_replace('/[^\p{L}0-9 ]/iu',' ', $text); $text = preg_replace('#\s*?\r?\n\s*?(?=\r\n|\n)#s', "", $text); while ( strpos($text,' ')!==false ) { $text = str_replace(' ',' ',$text); }; код выше там вообще не нужен, подсчет количества слов там уже считается, тебе оставалось просто использовать результат.
Что значит парных? Такой результат не верный? Код (PHP): // This is a test is do do do do kk kk ddd ddd ttt ttt ppp ppp array ( 'do' => 4, 'kk' => 2, 'is' => 2, 'ttt' => 2, 'ppp' => 2, 'ddd' => 2, 'This' => 1, 'a' => 1, 'test' => 1, )