首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除重复的php array_unique不起作用

问如何删除重复的php array_unique不起作用
EN

Stack Overflow用户
提问于 2017-01-18 08:24:14
回答 2查看 853关注 0票数 1

我尝试使用array_unique();,但不工作,这是我的代码,请帮助我,我做错了什么?我想显示所有没有重复的标签

代码语言:javascript
复制
ID | TAGS
1 | rock, punk, jazz
2 | pop, rock, classic
3 | jazz, blues, rock
4 | rock, rap, metal

$wynik = mysql_query("SELECT * FROM nabk_t_item_tags") or die('Błąd zapytania');
if (mysql_num_rows($wynik) > 0) {
    while ($r = mysql_fetch_assoc($wynik)) {
        $input = $r['tags'];
        $fields = explode(',', $input);
        $fields2 = array_unique($fields);
        foreach ($fields2 as $field) {
            echo '"' . $field . '",';
        }
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 15:17:03

试试这段代码。

代码语言:javascript
复制
if (mysql_num_rows($wynik) > 0) {
    $used=array();
    while ($r = mysql_fetch_assoc($wynik)) {
        $input = $r['tags'];
        $fields = explode(',', $input);
        foreach($fields as $tg){
            if(!isset($used[$tg])){
                echo '"' . $tg . '",';
                $used[$tg]=" ";
            }   
        }
    }
    unset($used);
}
票数 0
EN

Stack Overflow用户

发布于 2017-01-18 14:53:14

您必须将查询中的所有标签放入一个数组中。因此,使用您现有的代码:

代码语言:javascript
复制
// $fields2 = array_unique($fields);
$fields2 = array_merge($fields2, $fields);

然后,在while循环之后,$fields2将拥有所有标记,您可以array_unique该数组。因此,添加以下行并查看结果:

代码语言:javascript
复制
    } // end while
    $unique_tags = array_unique($fields2);
    var_dump($unique_tags);
} // end if
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41709401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档