Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как подсчитать колличесво одинаковых слов в тексте
 
 автор: serjinio   (28.08.2008 в 10:38)   письмо автору
 
 

есть чистый текст очищенный от всего
$ text =   "  как  подсчитать колличество подсчитать 
одинаковых подсчитать колличество одинаковых слов  
снова подсчитать колличество одинаковых слов 
подсчитать колличество слов" ;



хочу получить

подсчитать    5
колличество  4
одинаковых  3
слов                3
снова             1
как                  1


Заранее спасибо

  Ответить  
 
 автор: Trianon   (28.08.2008 в 10:49)   письмо автору
 
   для: serjinio   (28.08.2008 в 10:38)
 

explode()
array_count_values()

  Ответить  
 
 автор: serjinio   (28.08.2008 в 17:44)   письмо автору
 
   для: Trianon   (28.08.2008 в 10:49)
 

<?php 
foreach ((array_count_values ($arr)) as $key => $val)
    {
     echo 
'<br>'.$key.' -- -->'.$val
    }
?>

выводит

как -- -->1
подсчитать -- -->5
колличество -- -->4
одинаковых -- -->3
слов -- -->3
снова -- -->1


а как отсортировать чтобы было

подсчитать -- -->5
колличество -- -->4
одинаковых -- -->3
слов -- -->3
как -- -->1
снова -- -->1

  Ответить  
 
 автор: sim5   (28.08.2008 в 18:03)   письмо автору
 
   для: serjinio   (28.08.2008 в 17:44)
 

array_multisort($arr, SORT_DESC);

  Ответить  
 
 автор: serjinio   (28.08.2008 в 20:33)   письмо автору
 
   для: sim5   (28.08.2008 в 18:03)
 

так и не понял как мне ее применить

  Ответить  
 
 автор: Trianon   (28.08.2008 в 20:55)   письмо автору
 
   для: serjinio   (28.08.2008 в 20:33)
 

примените asort()

  Ответить  
 
 автор: sim5   (29.08.2008 в 05:57)   письмо автору
 
   для: Trianon   (28.08.2008 в 20:55)
 

Ну тогда не asort(), arsort() ;-)

  Ответить  
 
 автор: sim5   (29.08.2008 в 05:11)   письмо автору
 
   для: serjinio   (28.08.2008 в 20:33)
 

Сразу после explode().

  Ответить  
 
 автор: а-я   (28.08.2008 в 21:03)   письмо автору
 
   для: serjinio   (28.08.2008 в 10:38)
 

наверно так:

<?PHP

 
function count_words($A)
 {
  
$A array_count_values(explode(' ',$A));
  unset(
$A['']);
  
array_multisort($ASORT_DESC);
  return 
$A;
 }

$TEXT 'как  подсчитать колличество подсчитать  
одинаковых подсчитать колличество одинаковых слов   
снова подсчитать колличество одинаковых слов  
подсчитать колличество слов'
;

$_R count_words($TEXT);

echo 
'<pre>';
print_R($_R);
echo 
'</pre>';
?>

  Ответить  
 
 автор: serjinio   (29.08.2008 в 00:26)   письмо автору
 
   для: а-я   (28.08.2008 в 21:03)
 

спасибо, очень помогло...

  Ответить  
 
 автор: serjinio   (29.08.2008 в 12:08)   письмо автору
 
   для: а-я   (28.08.2008 в 21:03)
 

получаю на выходе массив
Array
(
    [подсчитать] => 5
    [ddddd] => 4
    [колличество] => 4
    [vvv] => 3
)


как получить эти слова в строчку,через запятую..пробовал использовать
implode(",",$arr );

но на выходе получаю
5,4,4,3

а надо получить
подсчитать,ddddd,колличество,vvv


Подскажите пожалуйста, чем воспользоваться

  Ответить  
 
 автор: sim5   (29.08.2008 в 12:17)   письмо автору
 
   для: serjinio   (29.08.2008 в 12:08)
 

implode(",",array_keys($arr));

  Ответить  
 
 автор: serjinio   (29.08.2008 в 13:43)   письмо автору
 
   для: sim5   (29.08.2008 в 12:17)
 

огромное спасибо все заработало...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования