【发布时间】:2009-11-25 22:10:05
【问题描述】:
我有一组从数据库中提取的标签,我正在将标签导出到标签云中。我坚持只获得这个词的第一个实例。例如:
$string = "test,test,tag,tag2,tag3";
$getTags = explode("," , $string);
foreach ($getTags as $tag ){
echo($tag);
}
这将输出两次测试标签。起初我以为我可以使用stristr 来做类似的事情:
foreach ($getTags as $tag ){
$tag= stristr($tag , $tag);
echo($tag);
}
这显然是愚蠢的逻辑并且不起作用,stristr 似乎只替换了第一次出现,所以像“test 123”这样的东西只会摆脱“test”并返回“123”我见过这也可以用正则表达式来完成,但我还没有找到一个动态的例子。
谢谢,
布鲁克
编辑: unique_array() 在我使用静态字符串时有效,但不适用于数据库中的数据,因为我正在使用 while 循环来获取每行数据。
$getTag_data = mysql_query("SELECT tags FROM `news_data`");
if ($getTag_data)
{
while ($rowTags = mysql_fetch_assoc($getTag_data))
{
$getTags = array_unique(explode("," , $rowTags['tags']));
foreach ($getTags as $tag ){
echo ($tag);
}
}
}
【问题讨论】:
标签: php regex dynamic-data strstr