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

PHP Remove email addresses from comma separated string

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

$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"

如果它确实验证为电子邮件,您将添加到结果数组中,因此将其更改为如果它没有!验证则添加:

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

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

然后implode()它:

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

如果您可以指望字符串中的所有其他内容与示例中的一样,您可以使用 is_numeric.

过滤它,而不是尝试查找和删除电子邮件
$result = implode(',', array_filter(explode(',', $cadena), 'is_numeric'));

如果您想要保留的值在您的示例中恰好是数字,没关系。