我有一个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);