我正在尝试从逗号分隔的字符串中删除电子邮件。我有一个脚本给我发电子邮件。任何方式快速做到这一点:
$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"
答案 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'));
如果您要保留的值恰好在您的示例中是数字,请不要介意。