将 for 更改为 foreach 循环

Changing a for into a foreach loop

你知道,我可能完全不在...经过进一步审查,我似乎更应该查看 php 邮件 headers...我正在尝试做他们输入的每个 $count 都有一个 fo each 循环,以发送不同的电子邮件 header,尽管它可能与 header 相关。我试图让 $randomNumber 显示为他们收到的每封电子邮件的不同数字,数量将根据他们输入的 $count 变量确定。它现在正在做的是,假设他们选择 3 作为 $count 输入,它将发送 3 封具有相同 From: 15158451@theirdomain.com 的电子邮件,而不是每封具有不同随机数的电子邮件。无论如何你知道要解决这个?谢谢

<input name="count" id="count" maxlength="2" />


$count                    = $_POST['count'];
$randomNumber             = rand();

if (isset($_POST['randomizeEmail'])) {

    for ($i = 0; $i < $count; $i++) {
{
        $headers = "From: $randomNumber@$customerDomain\r\n";
        $body    = $message;
        $email   = $customer. "@" . $provider;
        (mail($email, $subject, $body, $headers));

正如马里奥建议的那样,您应该使用 range

<?php
#0 and 12 respresentes your start and end i.e., your $i and $count
foreach (range(0, 12) as $number) {
    echo $number;
}
?>

但是 foreach 主要用于遍历您可能不需要的数组。

注:

foreach 仅适用于数组和 objects,并且当您尝试将其用于具有不同数据类型的变量或未初始化的变量时会出现错误。

$count  = $_POST['count'];
$randomNumber = rand();
if (isset($_POST['randomizeEmail'])) 
{
#Your Mail Code here
}

更新:(因为用户想知道如何在每个header中生成随机数)

那么你应该在 for 循环中包含 $randomNumber = rand();

 for ($i = 0; $i < $count; $i++) 
{
$randomNumber = rand();  # randomnumber is generated every time here ;)
$headers = "From: $randomNumber@$customerDomain\r\n";
}

$count 可能你有总数 post 但真实的 posted 值。所以像这样尝试。

foreach($_POST as $key => $value){
    //your rest code..
}

举个例子,很简单。

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element
?>

foreach 构造提供了一种遍历数组的简单方法。 foreach 仅适用于数组和对象。更多:http://php.net/manual/en/control-structures.foreach.php