2014-04-25 114 views
0

我需要计算一个用户输入单词的次数是否出现在数组中。用户将文本输入到表单文本框中,并将该文本转到PHP中的字符串变量中,然后将其分解为一个数组,并为每个空间分配一个索引。计算一个单词在php数组中出现的次数

我需要计算每个单词出现的次数。假设文本是“你好哟男人男人”,那么我需要计算单词“哟”出现的次数以及“男人”出现的次数。请记住,该文本可以是用户输入的任何内容,因此使用诸如“str_word_count”之类的方法不是选项,因为它只需要硬编码的文本。

我已成立至今代码:

form.php的:

<html> 

    <head> 

     <title>Part 1</title> 

    </head> 

    <body> 

     <h1></h1> 

     <form action="part1result.php" method = "post"> 

      <input type="text" name="text"/> 
      <input type="submit" value="Submit" /> 

     </form> 

    </body> 

</html> 

result.php:

<head> 

    <title></title> 

</head> 

<body> 

    The text you entered was: 

    <?php 

     $text = $_POST['text']; // get text 
     $textToCount = explode(' ', $text); 
     echo $text.'<br><br>'; 

     for($i=0; $i<count($textToCount); $i++) 
     { 

     } 



    ?> 

</body> 

回答

2

使用array_count_values()

$textToCount = explode(' ', 'yo yo yo man man man'); 
print_r(array_count_values($textToCount)); 
//Array ([yo] => 3 [man] => 3) 

foreach loop

$textToCount = explode(' ', 'yo yo yo man man man'); 
$words = array_count_values($textToCount); 
foreach ($words as $word => $count) { 
    printf('%s appears %u times', $word, $count); 
} 

请记住,如果标点符号允许一定使用代码之前将其删除标点符号可能会引发这一关等等。

总是检查手册为PHP has a ton of built in functions for arraysDemo

+0

我也见过这个。我用这种方法的问题是,它允许我打印出该单词出现的次数,当然,但不是以我想要的格式打印出来。我应该把它包括在原文中。 我一直在寻找的格式是:yo出现3次 男子出现3次 等等...... – Dagoth

+0

你确实意识到你可以让它以任何你想要的格式出现。这只是一个数组。 –

+0

对,但对于我尝试的格式,我得到了重复。它打印“哟出现3次”,3次。 – Dagoth

相关问题