将for更改为foreach循环

时间:2015-04-07 08:43:38

标签: php for-loop foreach

你知道,我可能完全关闭......经过进一步的审查,似乎更像是我应该调查php邮件标题而不是......我试图为每个循环输入他们输入的每个$ count发送不同的电子邮件标题,但它可能与标题有关。我试图让$ 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));

3 个答案:

答案 0 :(得分:2)

正如马里奥建议你使用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仅适用于数组和对象,当您尝试在具有不同数据类型或未初始化变量的变量上使用它时会发出错误。

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

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

然后你应该在$randomNumber = rand();循环

中有for

即,

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

答案 1 :(得分:1)

$ count可能有总帖子数但实际发布的值。所以试试这样。

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

答案 2 :(得分:1)

这是一个例子,很容易。

<?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

相关问题