以下の関数を作成しようとすると、ドメインごとに1つのメールのみが返されます。
例:関数をフィードする場合:
email1@domain.com email2@domain.com email1@domain.com email1@domain.com email3@test.co.uk
返して欲しい
email1@domain.com email3@test.co.uk
現在の機能は次のとおりです。
function remove_duplicates($str) {
# match all email addresses using a regular expression and store them
# in an array called $results
preg_match_all("([\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7})",$str,$results);
# sort the results alphabetically
sort($results[0]);
# remove duplicate results by comparing it to the previous value
$prev="";
while(list($key,$val)=each($results[0])) {
if($val==$prev) unset($results[0][$key]);
else $prev=$val;
}
# process the array and return the remaining email addresses
$str = "";
foreach ($results[0] as $value) {
$str .= "<br />".$value;
}
return $str;
};
これを達成する方法はありますか?