只是想知道你是否可以帮助我 我有一个包含标签行的列。在每一行中,我都用逗号和空格分隔每个标记。
例如:BMW M5,皮座,24英寸轮等。
我需要做的是循环遍历数组,将其展开,然后将值打印到页面。到目前为止,我已经能够做到这一点;但是,它会打印重复项。
这是我到目前为止的代码:
<?php
$cleanTags = ($row_getTags['tags']);
$cleanerTags = str_replace(', ',"-",$cleanerTags);
$tagstr = ($cleanerTags);
$tags = explode('-',$tagstr);
foreach($tags as $tag)
{
echo "<li><a href=\"results.php?search=".str_replace(" ",'%20',$tag)."\" title=\"Find more stuff tagged: ".$tag."\" class=\"tagLink\">".$tag."</a></li>";
}
?>
如何从阵列中删除重复项?我试过没有运气的array_unique。非常感谢任何帮助,我提前感谢您的帮助!!!
干杯
答案 0 :(得分:4)
通常情况下,array_unique
可以解决您的问题。像这样:
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
那么......你能说明你是如何尝试array_unique
的吗?
答案 1 :(得分:2)
如果array_unique
没有做到这一点(我想知道你如何使用),这是一种方法:
function remove_duplicates(array $array){
$tmp_array = array();
foreach($array as $key => $val)
{
if (!in_array($val, $tmp_array))
{
$tmp_array[$key] = $val;
}
}
return $tmp_array;
}
现在你的代码应该是:
$cleanTags = ($row_getTags['tags']);
$cleanerTags = str_replace(', ',"-",$cleanerTags);
$tagstr = ($cleanerTags);
$tags = explode('-',$tagstr);
// remove duplicates
$tags = remove_duplicates($tags);
foreach($tags as $tag)
{
echo "<li><a href=\"results.php?search=".str_replace(" ",'%20',$tag)."\" title=\"Find more stuff tagged: ".$tag."\" class=\"tagLink\">".$tag."</a></li>";
}