我有一个2D数组,我想从中删除重复项,
var转储看起来像这个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>";
}
}
}
}
我错过了什么吗?
答案 0 :(得分:2)
编辑:以下是Here (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'是您希望从
中删除重复项的列答案 1 :(得分:1)
array_unique($阵列);
你的嵌套foreach也有错误。假设您在上面发布的内容,您只需要一个foreach循环。如果你需要添加第二个,它应该基于你设置的临时变量,例如foreach($ table as $ row =&gt; $ key)..你可以做foreach($ key as $ item)
等!
答案 2 :(得分:1)
如果您只想删除重复项,可以使用array_unique,
$arr = array(
1 => "abc.com",
2 => "acc.com",
3 => "abc.com"
);
$result = array_unique($arr);
print_r($result);