-1

假设我发送了一系列电子邮件。emails 是一个包含 john@test.com、tom@test.com、jerry@test.com....等的数组

从接收方我正在尝试检索电子邮件。

   foreach ($_POST['emails'] as $i => $value) {
    echo "emails[$i] is $value<br />";
    }

这是正确的方法吗?对于 foreach 循环,它会迭代直到电子邮件数组中的所有数据完成吗?

4

4 回答 4

1

那是对的。不过,您可能可以使用更简单的循环:

foreach ($_POST['emails'] as $email) {
    echo $email, "<br>";
}

一定要清理你的输入


如果您要调用电子邮件发送功能或其他功能,则可以使用array_walk()

function send_mail($email){
    echo "Sending email to {$email}";
}

array_walk($_POST['emails'], 'send_mail');

# Sending email to john@test.com
# Sending email to tom@test.com
# Sending email to jerry@test.com
# ...
于 2012-05-10T20:51:59.947 回答
0

尝试

foreach ( $_POST ['emails'] as $value ) {
    echo $value , "<br />";
}
于 2012-05-10T20:52:39.030 回答
0

只需使用 $value:

foreach($_POST['emails'] as $value) {
    echo "Email: {$value}\n";
}

或者您也可以使用数组键来访问该值,但如果您不想编辑值,则没有意义:

foreach($_POST['emails'] as $key => $value) {
    echo "Email: " . $_POST['emails'][$key];
}
于 2012-05-10T20:55:21.127 回答
-1

不,您很可能将这种语法用于关联数组,$_POST['emails']而不是关联数组。正确的方法是这样的:

foreach ($_POST['emails'] as $email) {
echo "Email: $email<br />";
}
于 2012-05-10T20:52:24.937 回答