2017-01-10 29 views
0

在mysql和列「標籤」中有一個「post」表。從mysql中獲取唯一標籤和出現次數使用php

標籤的價值就像蘋果,橘子,桃子等。

我試圖讓所有的標籤和分配標籤&使用php數組發生的次數。這是我想要做的。

$recmostusedtagscol = array(); 
$recmostusedtagsq = mysqli_query($connecDB,"select tags from post limit 5"); 
while($recmostusedtagsr = mysqli_fetch_array($recmostusedtagsq)){ 
    $tagsarray = explode(',', $recmostusedtagsr['tags']); 
    foreach ($tagsarray as $tag) { 
    if(in_array($tag,$recmostusedtagscol)){ 
     $recmostusedtagscol[$tag][]++; 
    } 
    else { 
     $recmostusedtagscol .= [$tag => 1]; 
    } 
    } 
} 
print_r($recmostusedtagscol); 

更新時間: 這一個接近。它列出了uniqe值,但它不會將數值加1加到數組中。

$recmostusedtagscol = array(); 
$recmostusedtagsq = mysqli_query($connecDB,"select tags from post"); 
while($recmostusedtagsr = mysqli_fetch_array($recmostusedtagsq)){ 
    $tagsarray = explode(',', $recmostusedtagsr['tags']); 
    foreach ($tagsarray as $tag) { 
    if(in_array($tag,$recmostusedtagscol)){ 
     $recmostusedtagscol[$tag]++; 
    } 
    else { 
     $recmostusedtagscol[$tag]=1; 
    } 
    } 
} 
print_r($recmostusedtagscol); 

似乎in_array()不工作....也許....

+0

你爲什麼不總結,在SQL和檢索一次,而不是通過原始結果迭代的結果呢? – arkascha

+0

'$ recmostusedtagscol。= [$ tag => 1];'將該變量變成一個字符串。 – arkascha

+1

這也使得零感:'$ recmostusedtagscol [$ tag] [] ++;'... – arkascha

回答

0

基礎上的評論,這裏是一個工作。

$recmostusedtagscol = array(); 
$recmostusedtagsq = mysqli_query($connecDB,"select tags from post"); 
while($recmostusedtagsr = mysqli_fetch_array($recmostusedtagsq)){ 
    $tagsarray = explode(',', $recmostusedtagsr['tags']); 
    foreach ($tagsarray as $tag) { 
    if(isset($recmostusedtagscol[$tag])){ 
     $recmostusedtagscol[$tag]++; 
    } 
    else { 
     $recmostusedtagscol[$tag]=1; 
    } 
    } 
} 

感謝@馬克·貝克和@arkascha

相關問題