Я бы сказал, вы могли бы:
- разбить строку в массив слов
- с
explode
- или
preg_split
- в зависимости от сложности вы будете принимать за свои слова сепараторы
- us e
array_filte
r только для сохранения линий (т.слова), которые вы хотите
- функции обратного вызова придется вернуться ложными для всех некорректных слов-
- и, затем, использовать
array_count_values
на результирующий список слов
- , который будет рассчитывать сколько раз каждый из слов присутствует в массиве слов
EDIT: и просто для удовольствия, вот быстрый пример:
Прежде всего, строка, которая получает разобранное слова:
$str = "will see you in London tomorrow and Kent the day after tomorrow";
$words = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
var_dump($words);
Который получает вас :
array
0 => string 'will' (length=4)
1 => string 'see' (length=3)
2 => string 'you' (length=3)
3 => string 'in' (length=2)
4 => string 'London' (length=6)
5 => string 'tomorrow' (length=8)
6 => string 'and' (length=3)
7 => string 'Kent' (length=4)
8 => string 'the' (length=3)
9 => string 'day' (length=3)
10 => string 'after' (length=5)
11 => string 'tomorrow' (length=8)
Затем filteting:
function filter_words($word) {
// a pretty simple filter ^^
if (strlen($word) >= 5) {
return true;
} else {
return false;
}
}
$words_filtered = array_filter($words, 'filter_words');
var_dump($words_filtered);
который выводит:
array
4 => string 'London' (length=6)
5 => string 'tomorrow' (length=8)
10 => string 'after' (length=5)
11 => string 'tomorrow' (length=8)
И, наконец, подсчет:
$counts = array_count_values($words_filtered);
var_dump($counts);
И конечный результат:
array
'London' => int 1
'tomorrow' => int 2
'after' => int 1
Теперь до вас, чтобы создать здесь ;-)
В основном, вы будете работать на:
- А лучше взрывающийся функцию, которая имеет дело с ponctuation (или иметь дело с этим в течение фильтрация)
- «интеллектуальная» функция фильтрации, которая соответствует вашим потребностям лучше, чем мое
получайте удовольствие!
поститься для меня. снова зачерпнул. – dnagirl
'str_word_count' также может быть интересным: http://www.php.net/manual/en/function.str-word-count.php –
Спасибо, что работает. можно ли получить конечный результат без «int»? то естьпросто номер сам по себе – Steven