2013-06-04 88 views
1

我想從最近的50個帖子中找到標籤並用多少個標籤重複打印數量?PHP:str_word_count打印單詞和重複單詞的號碼

到目前爲止我打印了標籤。我怎樣才能打印「多少標籤重複」的數量。

$posts = mysql_query("SELECT * FROM posts ORDER BY id desc Limit 50"); 

while($fetch_tags = mysql_fetch_assoc($posts)) 
{ 
    $tags_array = str_word_count($fetch_tags['tags'],1); 
} 

foreach($tags_array as $tag) 
{ 
    echo $tag .'<br/>'; // ex: html</br/>php</br/> ...etc. 
} 

我希望輸出像$tag:$number<br/> ...

+0

是的,這是一個重複的。檢查此答案:http://stackoverflow.com/a/2984800/171318 – hek2mgl

+0

@showdev這裏的問題,而在沒有正常的$字符串,否則您的鏈接將工作.. –

+0

@ hek2mgl你試過嗎?如果它是一個普通的字符串,這是工作。但在它不是 –

回答

0

你可以讀到這樣的數組:

$posts = mysql_query("SELECT * FROM posts ORDER BY id desc Limit 50"); 
$results = array(); 

while($fetch_tags = mysql_fetch_assoc($posts)) 
{ 
    $tags_array = str_word_count($fetch_tags['tags'],1); 

    foreach($tags_array AS $index => $tag) { 
     if (!isset($results[$tag])) $results[$tag] = 1; // First occurrence 
     else $results[$tag] += 1; // Add one occurrence 
    } 
} 

// Now that we counted, print the results 
foreach($results AS $tag => $number) 
{ 
    echo "{$tag} : {$number}<br />\n"; 
} 
+0

ammm我如何測試你的代碼?與我從數據庫中獲得的信息?我在第一時間把第一個foreach?我測試它我顯示1:3 ..?我有2個職位與「PHP JavaScript的CSS」和其他「PHP的JavaScript」......可以解釋更多.. –

+0

嘗試它在你的時候,只是在$ tags_array = str_word_count($ fetch_tags ['標籤',1) ; –

+0

我試過了,它顯示每個單詞1 ...我把第一篇文章的標籤改成了'php javascript css php'。現在打印的php標籤就像{php}:{2}。 **但是**應該有三個,因爲第二個帖子的標籤是'php javascript'。看起來好像是在同一篇文章中出現重複標籤,但是在不同的文章中它沒有,它需要是相反的。我希望我解釋我的觀點?你能幫我嗎 ? –