如何在php中显示唯一的数组值

时间:2010-02-27 15:21:01

标签: php mysql arrays

   $content = '<h3>popular tags »</h3><hr>';

    $result = $db->sql_query("SELECT tags FROM ".DOWNLOAD_TABLE." ");
    while($row = $db->sql_fetchrow($result)){
     $dl_tags_id = $row['tags'];
     $dl_tags_id_ex = explode(" ",$dl_tags_id)   ;
     $dl_tags_id = array_unique($dl_tags_id_ex);

     $c = count($dl_tags_id);
     for($i=1;$i<$c-1;$i++){
//for loop content

     }
    }
    echo $content;
嘿伙计们。我使用上面的代码来显示我的热门标签。正如您在代码中看到的,我有两个表,一个是以数组格式存储标签ID的下载表,例如:

20 21 13 14

另一个是定义这些ID的标签表

现在唯一的问题是,在打印此代码时,我可以看到重复的标记为:

white(2)
blue(4)
white(2)

我想知道如何防止显示重复的输出。

提前致谢

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您正在对每一行进行array_unique调用!

你这样做:

while($row = $db->sql_fetchrow($result)){
    $dl_tags_id = $row['tags'];
    $dl_tags_id_ex = explode(" ",$dl_tags_id)   ;
    $dl_tags_id = array_unique($dl_tags_id_ex);
    // rest of code...
}

真的,你想这样做:

$dl_tags_all = '';
while($row = $db->sql_fetchrow($result)){
    $dl_tags_all .= ' '.$row['tags'];
}
$dl_tags_id_ex = explode(" ",substr($dl_tags_all,1));
$dl_tags_id = array_unique($dl_tags_id_ex);
//rest of code....