Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在foreach期间需要从数组中删除重复的值_Php - Fatal编程技术网

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("&nbsp;",'%20',$tag)."\" title=\"Find more stuff tagged:&nbsp;".$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("&nbsp;",'%20',$tag)."\" title=\"Find more stuff tagged:&nbsp;".$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("&nbsp;",'%20',$tag)."\" title=\"Find more stuff tagged:&nbsp;".$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
    不是吗?