принимать ваш $ cResult в качестве входных данных:
$word_counts = [];
// remove scripts and styles completely, then strip tags
$cResult = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $cResult);
$cResult = preg_replace('#<style(.*?)>(.*?)</style>#is', '', $cResult);
$cResult = strip_tags($cResult);
// strip all characters that are not letters:
$word_array_raw = explode(' ',preg_replace('/[^A-Za-z ]/', ' ', $cResult));
// loop through array:
foreach ($word_array_raw as $word) {
$word = trim($word);
if($word) {
isset($word_counts[$word]) ? $word_counts[$word]++ : $word_counts[$word] = 1;
}
}
// Array with all stats sorted in descending order:
arsort($word_counts);
// Output format you wanted:
foreach ($word_counts as $word=>$count) {
echo "$word | $count<br>";
}
Надеется, что это помогает
Я не уверен, что ваш коду должен делать с вашим вопросом, но вы можете попробовать [ 'str_split()'] (http://php.net/manual/en/function.str-split.php), чтобы разбить его на пробелы, затем перебрать по массиву и использовать слова в виде ключей в другом массиве, увеличивая каждый раз. Если вы хотите разбить на любой границе слова, используйте ['preg_split()'] (http://php.net/manual/en/function.str-split.php) и разделите на '\ b'. Просто с головы. – alanlittle