2013-01-08 179 views
0

可以說我有兩個數組 -過濾電子郵件通過域名

$EmailList1 = array("[email protected]", "[email protected]", "[email protected]"); 
$EmailList2 = array("[email protected]", "[email protected]", "[email protected]"); 

現在,我想我的新陣列是[[email protected][email protected]]

原因[email protected]省略,因爲它具有域(domain1.com)它已經存在於$EmailList1

我的方法將首先獲得$EmailList1的所有域,將其存儲到數組中,循環遍歷$EmailList2的每個項目,然後獲取結果。

這是正確的方式還是可能有更好的方法?

回答

0

嘗試:

$uniqueEmailsArray = array_unique(array_merge($EmailList1 , $EmailList2)); 
+0

我不牛逼嗯所以... – skos

+0

你只是想保留從第二個數組的值,並從第一個轉儲的值? – mallix

0

試試這個 -

<?php 
$EmailList1 = array("[email protected]", "[email protected]", "[email protected]"); 
$EmailList2 = array("[email protected]", "[email protected]", "[email protected]"); 

foreach($EmailList1 as $email){ 
    $emailArray = explode('@',$email); 
    $domainArray[] = $emailArray[1]; 
} 

$domains = array_unique($domainArray); 

foreach($EmailList2 as $email){ 
    $emailArray = explode('@',$email); 
    if(!in_array($emailArray[1], $domains) && !array_search($emailArray[1], $domains)){ 
    $sorted_emails[] = $email; 
    } 
} 

print_r($sorted_emails); 
?>