Я пытаюсь удалить письмо из строки, разделенной запятой. У меня есть скрипт, который приносит мне письма. Любой способ сделать это быстро:
$cadena = "[email protected],0001,00005,0010,[email protected],003";
$cadena = explode(",", $cadena);
foreach($cadena as $res){
if(filter_var($res, FILTER_VALIDATE_EMAIL)){
$result[] = $res;
}
}
Результат:
array([email protected],[email protected]);
Но мне нужно:
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'));
Если значения, которые вы хотите сохранить, в вашем примере оказались числовыми, не берите в голову.