2013-01-11 2 views
-1

나는 실행하는 SQL 쿼리에서 생성 된 배열을 가지고 있습니다. 다음과 같이 표시됩니다.배열의 열의 PHP 고유 값

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

전자 메일 열의 고유 값은 어떻게 얻을 수 있습니까? 도움에 감사드립니다.

+0

은 우리에게 당신이 검색 한 관련 주제를 제시해주십시오. – Kermit

+1

SQL 쿼리를 필터링하지 않는 이유는 무엇입니까? – cheesemacfly

+0

^내가하고있는 일을 SQL에서 필터링 할 수 없습니까?^나는 즉시 해결책이 필요하다. 죄송합니다 – scriptdiddy

답변

8

어느 쪽이든 당신은 SQL에서 이메일로 정렬 된 목록을 얻을 경우 가레스가하는 것처럼 배열을 통해 반복하여 성능을 향상시킬 수 있습니다 MySQL의에서 DISTINCT 방법을 사용하여 열에서 필터링, 또는

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

같은 것을 사용 대신 현재 전자 메일 주소와 마지막으로 삽입 된 전자 메일 주소를 비교합니다.

$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);