@daylight6

Как сплюсовать количество часто встречающихся слов из массива строк?

Добрый день.
Есть массив вида:

$array = array(
[0] => array( [text] => "Сегодня мы пошли с друзьями на речку." ),
[1] => array( [text] => "Вчера мы ходили с самого утра по магазинам." ),
[2] => array( [text] => "Сегодня мы гуляли возле большого парка." ),
);

На выходе нужно получить один массив вида, где ключ - это повторяющееся слово, а значение - количество, сколько раз встречалось в строках из массива:

$array2 = array(
[мы] => 3,
[сегодня] => 2,
[с] => 2,
);
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега PHP
♬♬
Сначала решите подзадачу с единственным предложением:
  1. разбейте на слова по пробелам
  2. удалите по краям слов не-буквы — знаки препинания
  3. приведите все в маленькие буквы

Покажите, что получилось, потом поговорим.
Ответ написан
Immortal_pony
@Immortal_pony Куратор тега PHP
$array = [
    ['text' => "Сегодня мы пошли с друзьями на речку."],
    ['text' => "Вчера мы ходили с самого утра по магазинам."],
    ['text' => "Сегодня мы гуляли возле большого парка."]
];
$string = implode(" ", array_column($array, "text"));
$lowercased = mb_strtolower($string);
$cleaned = preg_replace("/[^а-я ]/u", "", $lowercased);
$words = explode(" ", $cleaned);
$frequency = array_count_values($words);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы