0

大家好,我有一个名为标签的列,其中包含从 1 到无限标签之间的标签,用分号分隔,并且它有超过 100 行

我需要使用行和列构建菜单树,因此我必须获取各个唯一值,任何人都可以帮助我完成此操作,因为我不确定如何去做。

+--+---------------------+
|id|tags                 |
+--+---------------------+
|1 |comedy;drama;tv      |
|2 |comedy;horror;movie  |
|3 |horror;tv;pictures   |
|4 |sitcom               |
|5 |drama;book           |
+--+---------------------+

结果应该是

$array = array("comedy", "horror", "movie", "pictures", "drama", "tv", "sitcom", "book");

任何帮助深表感谢。

4

3 回答 3

0

下面做的事情..检查出来..

$query = "select tags from tags";

$result = mysql_query($query);
$exploded_tags=array();
while($rows=mysql_fetch_array($result))
{
$unexploded_tags=$rows['tags'];
$exploded_tags=array_merge($exploded_tags,explode(';',$unexploded_tags));
}
$exploded_tags=array_unique($exploded_tags);
print_r($exploded_tags)
于 2013-11-12T04:40:11.967 回答
0

希望这对你有用。

http://www.tero.co.uk/scripts/mysql.php

使用分隔符拆分字符串,然后从中取出不同的字符串。另外的选择:

$explodedResult[] = explode(";",$row);

将每一行的所有标签放入一个数组中,然后使用'array_unique' http://us2.php.net/function.array-unique

于 2013-11-11T10:54:57.123 回答
0

进行查询,然后对查询中的每一行进行分解:

http://php.net/manual/en/function.explode.php

这将返回一个数组,然后您可以循环并执行您想要的操作。像这样的东西:

$ExplodedResult = explode(";",$Row);


array()
(
    [0] => "comedy"
    [1] => "drama"
    [2] => "tv"
)
于 2013-11-11T10:43:04.610 回答