2017-03-24 49 views
0

我有两个漂亮的大阵列,其中包含电子邮件地址。PHP:查找数组差异的值

$oldmail$newmail

两个看起来是这样的:

[0] => [email protected] 
[1] => [email protected] 
[2] => [email protected] 
... 

我想找到$newmail的所有电子邮件值不会在任何地方$oldmail存在。

我认为这应该工作:

foreach ($oldmail as $key => $value) 
{ 
    foreach ($newmail as $key2 => $value2) 
    { 
     if ($value == $value2) 
     { 
      //do nothing.. 
     } 
     else 
     { 
      echo $value2; 
     } 
    } 
} 

但它实在是太大了沉重的资源大名单。

有没有更有效率的方法可以做到这一点?

+2

http://php.net/array_diff –

+0

我试图和array_diff,但它不缝通过所有的值进行搜索 - 只比较值[0]对2 [0 ]如果我理解正确? 它应该比较值[0]与其他数组中的所有值 – Bolli

+1

比较是否区分大小写? – RomanPerekhrest

回答

3

PHP code demo

<?php 
$a1=array("red","green","blue","yellow"); 
$a2=array("red","green","blue"); 

$result=array_diff($a1,$a2); 
print_r($result); 
?> 
1

和array_diff()是不错的选择。它不仅与您在评论中提到的索引相匹配。它比较所有值。

给这一个镜头:

$result=array_diff($newmail,$oldmail); 
print_r($result);