PHP从逗号分隔的字符串中删除电子邮件地址

时间:2016-04-27 21:14:39

标签: php email remove-if

我正在尝试从逗号分隔的字符串中删除电子邮件。我有一个脚本给我发电子邮件。任何方式快速做到这一点:

$cadena = "Example1@email.com,0001,00005,0010,Example3@email2.com,003";

$cadena = explode(",", $cadena);        

foreach($cadena as $res){
    if(filter_var($res, FILTER_VALIDATE_EMAIL)){
        $result[] = $res;
    }
}

结果:

array(Example1@email.com,Example3@email2.com);

但我需要:

string "0001,00005,0010,003"

2 个答案:

答案 0 :(得分:4)

如果您的结果数组已作为电子邮件验证,那么您将其添加到结果数组中,因此如果它未进行!验证,则将其更改为添加:

$cadena = explode(",", $cadena);        

foreach($cadena as $res){
    if(!filter_var($res, FILTER_VALIDATE_EMAIL)){
        $result[] = $res;
    }
}

然后只是implode()

$result = implode(',', $result);

答案 1 :(得分:1)

如果您可以指望字符串中的所有其他内容与您的示例相同,则可以使用is_numeric过滤它,而不是尝试查找和删除电子邮件。

$result = implode(',', array_filter(explode(',', $cadena), 'is_numeric'));

如果您要保留的值恰好在您的示例中是数字,请不要介意。