0

내가 2D 인 배열을 가지고 있고이 1=>abc.com. 2=>acc.com, 3=>abc.com 같은제거 중복

var에 덤프 모습은 내가 abc.com의 두 번째 선두로부터를 제거하려면, 그것에서 중복을 제거 할, 즉 제거하고 싶습니다 3=>abc.com,

중첩 루프를 사용하려고했지만 코드가 작동하지 않습니다.

foreach ($var as $m) 
    { 
     foreach ($var as $s) 
     { 
       if(isset($m['Email'])){ 
        if($m['Email'] == $s['Email']){ 
        echo 'matched with '.$s['Email']; 
        echo '</br>'; 
        unset($s); 
        //echo $v['Email']; 
        //echo "<br>"; 
       } 
      } 
     } 
    } 

내가 누락 된 상품이 있습니까?

+0

사용 [array_unique (http://php.net/manual/en/function.array-unique.php) –

답변

2

당신은 방금 array_unique function

편집을 사용할 수 있습니다 여기에 Here (Codepad)

PHP

<?php 
$input = array("1" => "abc.com", "2" => "acc.com", "3" => "abc.com"); 
$result = array_unique($input); 
print_r($result); 
?> 

출력

Array 
(
    [1] => abc.com 
    [2] => acc.com 
) 
의 코드와 출력은

Edit2가 : 원함 $ 입력이 완료 배열 및 '이메일'인 경우 만

$output = array_intersect_key($input, array_unique(array_column($input, 'Email'))); 

를 사용, 특정 열에서 중복을 제거하려면

+0

I 그냥 내 배열의 작은 발췌 문장을 붙여 실제로 전자 배열은 전자 메일, ID, 연락처 번호 등이 이상으로 구성되어 있습니다, 난 그냥 이메일에 중복을 확인하고 싶습니다, 그래서이 기능을 사용하여 캔트 – user3680538

+0

그럼 당신은 뭔가를 찾고 있습니다 즉, http://stackoverflow.com/questions/19219362/remove-duplicate-in-array-based-on-column-value – Bijan

+0

코드는 다음과 같습니다. $ output = array_intersect_key ($ input, array_unique (array_column ($ 입력, '이메일')))); – Bijan

1

array_unique에서 중복을 제거 할 열 ($입니다하게하려면 정렬);

중첩 된 foreach에도 실수가 있습니다. 위의 내용을 가정하면 foreach 루프가 하나만 필요합니다. 2nd를 추가해야하는 경우 설정하는 임시 변수를 기반으로해야합니다. foreach ($ table = $ row => $ key) .. foreach ($ item으로 $ key) 할 수있다

등!

1

만 중복을 제거 할 경우 array_unique를 사용할 수

$arr = array(
    1 => "abc.com", 
    2 => "acc.com", 
    3 => "abc.com" 
); 

$result = array_unique($arr); 
print_r($result);