大家好,我有一个名为tag的列,其中包含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");
非常感谢任何帮助。
答案 0 :(得分:0)
然后,您的查询会对查询中的每一行进行爆炸:
http://php.net/manual/en/function.explode.php
这将返回一个数组,然后您可以循环并执行您想要的操作。像这样:
$ExplodedResult = explode(";",$Row);
array()
(
[0] => "comedy"
[1] => "drama"
[2] => "tv"
)
答案 1 :(得分:0)
希望这对你有用。
http://www.tero.co.uk/scripts/mysql.php
使用分隔符拆分字符串,然后从中分离出不同的字符串。 另一种选择:
$ explosionResult [] = explode(“;”,$ row);
将每行中的所有标记合并为一个数组,然后使用'array_unique'http://us2.php.net/function.array-unique
答案 2 :(得分: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)