php 数组没有一次显示一个变量

php array is not showing out one variable at a time

foreach (array($email_with_comma) as $v) {
                mail($v,$subject_friend,$message_friend,$headers);
        }

$$email_with_comma 包含一系列以逗号分隔的电子邮件地址。示例- person1@email.com、person2@email.com、person3@email.com 等

我尝试使用循环将电子邮件一次发送给一个收件人。这样其他人就不会看到其他联系人。 但是这段代码向所有人发送电子邮件。我在这里只谈论 "to" 选项,即 $v。

你需要通过explode()把它变成一个数组,而不是把它作为一个字符串放在一个数组中。

foreach( explode(",", $email_with_comma) as $v) {
    //Check for valid email 
    if (filter_var($v, FILTER_VALIDATE_EMAIL)) {
       mail($v,$subject_friend,$message_friend,$headers);
    }
}

目前,您正在四处转转

Array
(
    [0] => foo@bar.com,bar@foo.com
)

通过 explode() 在逗号 (,) 上,您将创建一个包含多个值的数组;

Array
(
    [0] => foo@bar.com
    [1] => bar@foo.com
)

使用explode函数拆分一个变量然后只将变量转换成数组

$emails=explode(",", $email_with_comma);
foreach($emails as $v):
  echo $v;
endforeach;