计算计数单词的多少变量(PHP)

时间:2014-05-06 11:21:39

标签: php variables

我想问一下如何计算包含单词的变量数量。

例如,我有3个变量:

$var1 = "Alpha Beta Cupcake Doughnut";
$var2 = "Cupcake Doughnut Eclair Froyo";
$var3 = "Gingerbread Doughnut";

我希望结果是这样的(“The word”:“How times” - “variable(s)”):

Alpha : 1 - $var1(only 1 variable contain word Alpha)
Beta : 1 - $var1
Cupcake : 2 - $var1 and $var2 (2 variables contain word Cupcake)
Doughnut : 3 - $var1, $var2, and $var3(3 variables contain word doughnut)
Eclair : 1 - $var2
Froyo : 1 - $var2
Gingerbread : 1 - $var3

有谁知道怎么做? 如果有这个解决方案的示例代码,我真的很感激

2 个答案:

答案 0 :(得分:4)

  • 您将变量放入数组
   $variables = array();
    $variables[] = $var1;
    $variables[] = $var2;
    $variables[] = $var3;
  • 您为每个单词创建一个包含计数的数组
$words = array();
  • 你数字
foreach($variables as $variable)
{
  $wordsInVariable = explode(' ',$variable);
  foreach($wordsInVariable as $word)
  {
    if(isset($words[$word])
    {
       $words[$word] += 1;
    }else
    {
       $words[$word] = 1;
    }
  }
}
  • 打印结果
print_r($words) // or whatever

答案 1 :(得分:4)

将您的变量字符串分解为数组,然后只计算条目。 我认为最简单的方法是:

$arrayWithVariables = array_count_values(array_merge(
        explode(' ', $var1), 
        explode(' ', $var2), 
        explode(' ', $var3)
    ));

结果数组是:

array
  'Alpha' => int 1
  'Beta' => int 1
  'Cupcake' => int 2
  'Doughnut' => int 3
  'Eclair' => int 1
  'Froyo' => int 1
  'Gingerbread' => int 1