Php 在foreach期间需要从数组中删除重复的值
只是想知道你是否能帮我。Php 在foreach期间需要从数组中删除重复的值,php,Php,只是想知道你是否能帮我。 我有一个列,列中有一行标记。在每一行中,我用逗号和空格分隔每个标记 例如:宝马M5、真皮座椅、24英寸车轮等 我需要做的是循环遍历数组,分解它,然后将值打印到页面上。到目前为止,我已经能够做到这一点;但是,它会打印副本 以下是我目前掌握的代码: <?php $cleanTags = ($row_getTags['tags']); $cleanerTags = str_replace(', ',"-",$cleanerTags); $tagstr =
我有一个列,列中有一行标记。在每一行中,我用逗号和空格分隔每个标记 例如:宝马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,但运气不好。任何帮助都将不胜感激,我提前感谢您的帮助
干杯如果
array\u 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>";
}
$cleanTags=($row_getTags['tags');
$cleanerTags=str_replace(“,”,“-”,$cleanerTags);
$tagstr=($cleanerTags);
$tags=分解('-',$tagstr);
//删除重复项
$tags=删除重复项($tags);
foreach($tags作为$tag)
{
回声“”;
}
如果array\u 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>";
}
$cleanTags=($row_getTags['tags');
$cleanerTags=str_replace(“,”,“-”,$cleanerTags);
$tagstr=($cleanerTags);
$tags=分解('-',$tagstr);
//删除重复项
$tags=删除重复项($tags);
foreach($tags作为$tag)
{
回声“”;
}
通常情况下,array\u unique
可以解决您的问题。像这样:
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
所以。。。您能展示一下您是如何尝试
array\u unique
的吗?通常,array\u unique
可以解决您的问题。像这样:
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
所以。。。您能展示一下您是如何尝试使用
array\u unique
的吗?您确定每个标记的大小写、字符串长度等都相同吗。。。意思是,字符串是否完全相同?在尝试array_unique之前,可能希望尝试将所有值设置为小写。您在什么时候尝试了array_unique
?是否确定每个标记的大小写、字符串长度等都相同。。。意思是,字符串是否完全相同?在尝试array_unique之前,可能希望尝试将所有值设置为小写。您在什么时候尝试了array_unique
?$my_array
应该是$tmp_array
不是吗?$my_array
应该是$tmp_array
不是吗?