0

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

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

2 回答 2

4

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

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

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

然后就是implode()它:

$result = implode(',', $result);
于 2016-04-27T21:17:01.430 回答
1

如果您可以依赖字符串中的所有其他内容,就像您的示例中一样,而不是尝试查找和删除电子邮件,您可以使用is_numeric.

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

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

于 2016-04-27T21:46:25.030 回答