从2D数组中删除重复



我有一个2D数组我想从中删除重复项

var dump是这样的1=>abc.com. 2=>acc.com, 3=>abc.com所以我要删除abc.com的第二次出现,也就是删除3=>abc.com

我尝试使用嵌套循环,但代码不工作。

 foreach ($var as $m)
   {
        foreach ($var as $s)
        {
                if(isset($m['Email'])){
                    if($m['Email'] == $s['Email']){
                    echo 'matched with '.$s['Email'];
                    echo '</br>';
                    unset($s);
                    //echo $v['Email'];
                    //echo "<br>";
                }
            }
        }
   }

我错过了什么吗?

可以直接使用array_unique函数

编辑:这里是代码和输出从这里(Codepad)

PHP

<?php
$input = array("1" => "abc.com", "2" => "acc.com", "3" => "abc.com");
$result = array_unique($input);
print_r($result);
?>

Array
(
    [1] => abc.com
    [2] => acc.com
)

Edit2:要从特定列中删除重复项,只需使用

$output = array_intersect_key($input, array_unique(array_column($input, 'Email')));

其中$input是完整的数组,'Email'是您希望从

中删除重复项的列

array_unique($array);

在嵌套foreach中也有一个错误。假设你上面发布的,你只需要一个foreach循环。如果你需要添加第二个,它应该基于你正在设置的临时变量,例如foreach($table as $row => $key) ..foreach($key as $item)

等!

如果您只想删除重复项,您可以使用array_unique,

$arr = array(
    1 => "abc.com", 
    2 => "acc.com", 
    3 => "abc.com"
); 
$result = array_unique($arr);
print_r($result);

相关内容

  • 没有找到相关文章

最新更新