2013-01-11 64 views
-1

我有一個從我運行的SQL查詢生成的數組。它看起來像下面這樣:來自陣列中的列的唯一值

$arr[$i]['id'] = $id; 
$arr[$i]['name'] = $name; 
$arr[$i]['email'] = $email; 

如何從電子郵件列中獲取唯一值?我很感激幫助。

+0

請告訴我們您所搜索的相關主題。 – Kermit

+1

爲什麼不過濾你的SQL查詢? – cheesemacfly

+0

^我無法在SQL上篩選我正在做什麼? ^^我需要立即解決。抱歉 – scriptdiddy

回答

8

要麼使用DISTINCT方法在MySQL在列中篩選,或者使用類似

$uniqueEmails = array(); 
foreach($arr as $array) 
{ 
    if(!in_array($array['email'], $uniqueEmails) 
     $uniqueEmails[] = $array['email']; 
} 
0

如果你從SQL通過電子郵件排序列表中,您可以通過數組循環像加雷確實提高性能,而只是將當前電子郵件地址與上次插入的電子郵件地址進行比較。下面是這一個代碼示例:

$uniqueEmails = array(); 
$lastemail = ''; 
foreach($arr as $array) 
{ 
    if($array['email'] != $lastemail) 
    { 
     $uniqueEmails[] = $array['email']; 
     $lastemail = $array['email']; 
    } 
} 
2

自PHP 5.5,一個名爲array_column()新的功能也可。 你可以用它下列方式:

$allEmails = array_column($arr, 'email'); 
$uniqueEmails = array_unique($allEmails);