在foreach循环中的PHP foreach循环

我正在尝试在foreach循环中执行foreach循环.

我有一个表单,用户输入一些文本并点击发送.在服务器站点上,我遍历带有电子邮件地址的数组并发送短信.

现在我也希望用户能够在textarea中使用变量,比如$name.
所以我的循环首先应该遍历电子邮件,然后使用我的数组中的名称str_replace userinput $name变量.

循环适用于电子邮件部分($tlf),但不适用于替换$name部分.

有人可以发现我做错了吗?

$message = stripslashes(strip_tags($_POST['message2']));
$tlf=array("name1","name2");
$test=array("mname1", "mname2");
$subject = "Hello world";
$from = "me@gmail.com";
$headers = "From: $from";

foreach($tlf as $name){
    $to = $name. "@gmail.com";
    foreach($test as $navn){
        $message = str_replace('$navn', $navn, $message);}
    mail($to,$subject,$message,$headers);
}

非常感谢.

编辑:
输出是发送的电子邮件.假设用户输入“hello $name”.
我希望它首先遍历$tlf数组,在这种情况下创建2封电子邮件.这在第一个循环中以$到.这有效.

现在下一个循环应该识别用户输入“hello $name”并循环遍历$test数组,替换用户$name变量.

输出将是2封电子邮件发送.

>邮件输出:
to:name1@gmail.com
消息:你好mname1
>邮件输出:
to:name1@gmail.com
消息:你好mname2

让我知道如果我需要更好地解释,我很难解释对不起.

最佳答案
这是你想要的吗?

$message = stripslashes(strip_tags($_POST['message2']));
$tlf=array(
            array("email" => "name1", "name" => "mname1"),
            array("email" => "name2", "name" => "mname2")
          );
$subject = "Hello world";
$from = "me@gmail.com";
$headers = "From: $from";

foreach($tlf as $contact){
    $to = $contact["email"] "@gmail.com";
    $replacedMessage = str_replace('$navn', $contact["name"], $message);
    mail($to,$subject,$replacedMessage,$headers);
}

转载注明原文:在foreach循环中的PHP foreach循环 - 代码日志