2017-03-24 50 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);