2014-04-25 113 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

相關問題