PHP:查找字符串或数组中出现的最常用单词

问题描述 投票:2回答:5

我知道我可以用这种方式找到数组中最常见的元素:

(如果我错了,请纠正我)

$array = array('good', 'good', 'good', 'cool');     
$array = array_count_values($array);
$array = array_keys($array);
$element = $array[0]

如果我想找到最常用的单词而不是最常见的单词,那怎么样:

(在这种情况下,它将是单词appleme

$array = array('apple bb','cc apple','d','ccc ab','apple ccccc','cc cccc me me me')

如果我首先使用implode将数组转换为字符串,

我怎样才能以最简单的方式找到它们?

如果没有implode然后explode,我可以用它来找到它/他们的其他方法是什么?

php string function
5个回答
2
投票

str_word_count()在字符串上工作,这意味着你只需要内爆,而不是再次爆炸:使用第二个参数1将计算每个单词的出现次数。它的最大优点是在分割句子时会考虑标点符号。


3
投票

最好的方法就是这个,正如你提到的implode()explode()

$array = array('apple bb','cc apple','d','ccc ab','apple ccccc','cc cccc');
$array2 = array_count_values(explode(' ', implode(' ', $array)));
echo key($array2);

3
投票

不知道你问题的第二部分,第一部分,这是我在WebDeveloper上找到的一个函数

function array_most_common($input) 
{ 
  $counted = array_count_values($input); 
  arsort($counted); 
  return(key($counted));     
}

2
投票

一种在字符串或数组中查找最频繁/重复单词的工作方式。使用PHP

在一个字符串中,

<?php

$str = "hi its me . hi its me .hello its me hi";

$array = explode(" ",$str);

$array = array_count_values($array);

arsort($array);

$highest = current($array);

foreach($array as $key=>$value)
    if($value == $highest)
        $repeat[] = $key;
?>

这里$repeat[]包含字符串中最重复的单词。


1
投票

试试这个 :

<?php

function getMostFrequentInArray($array)
{

   // e.g. $array = array('apple bb','cc apple','d','ccc ab','apple ccccc','cc cccc');

   $token_array = array();

   for ($array as $item)
   {
        $token_array[] = explode(" ",$item);
   }

   $array_by_frequency = array_count_values($token_array);
   $element = $array_by_frequency[0];

   return $element;
}

?>
© www.soinside.com 2019 - 2024. All rights reserved.