2011-12-07 2 views
0

[email protected]\n 형태의 텍스트 파일이 있습니다. 나는 explode()으로 배열에 데이터를 넣었다. 전화를 기준으로 중복 행 (값)을 제거하려면 어떻게해야합니까? 나는 피하고 싶다문자열의 일부를 기반으로 PHP 배열에서 중복 값을 제거하는 방법

[email protected] 
[email protected] 

나는이 전화를 바탕으로 독특하게 만들고 싶다. 당신이 이름을 걱정하고 당신이 숫자 또는 대시하지 않는 명부에 모든 문자를 대체 할 수있는 고유 번호 목록을 원하지 않는 경우

+1

당신은 '에드'와 '에디'정보를 보관해야합니까? – rdlowrey

+0

레코드 중 하나를 유지하는 것은 아닙니다. – Googlebot

답변

4
<?php 
$result = array(); 
foreach($dataset as $input): 
    $parts = explode('@', $input); 
    $result[$parts[1]] = $parts[0]; 
endforeach; 
$result = array_flip($result); 
+0

+1 영리한 생각. – AlienWebguy

+0

+1에 동의합니다. – rdlowrey

+0

이것은 또한 YYYY-MM-DD-HH-MM-SS 형식의 여러 디렉토리가있는 매일 최신 디렉토리를 찾으려고 할 때 유용했습니다. '$ directory [$ directory] = substr ($ directory, 0,10); '을 사용하여 날짜가 키가되고 최대 번호 매겨진 시간이 마지막으로 생성됩니다. – doubleJ

2

다음) (AN array_unique을 수행

$arr = array(
    '[email protected]', 
    '[email protected]' 
); 

$arr = preg_replace('/[^\d\-]/', '', $arr); 
$arr = array_unique($arr); 

print_r($arr); 

숫자가 항상 그 형식 (name @ number)으로되어 있으면 @Kenaniah의 응답이 잘 작동합니다.

1

사용 :

$result = array(); 
foreach($arrayData as $data){ 
    $uniqueKey = strstr($data, '@');//@999-999-999 
    $result[$uniqueKey] = $data; 
} 

var_dump($result); 
관련 문제