如何使用引号将数组实现为文本

时间:2012-04-20 13:24:23

标签: php arrays email for-loop quotation-marks

我有一些理解上的困难。我在html中有一些复选框,如下所示:

<input type="checkbox" name="a[]" value="1">
<input type="checkbox" name="a[]" value="2">
<input type="checkbox" name="a[]" value="3">

我想评估一个[]的多个选项,以查看所选内容,这就是我必须使用数组的原因。

好的,现在的问题是:提交后我发布了那个数组。

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

    $a = $_POST['a'];
}

此外,我想为所选的每个值将一些消息设置到另一个数组中:

if ($a === '1'){
   $msg[] = "text1";
}
if ($a === '2'){
   $msg[] = "text2";
} and so on...

现在我已将这些消息存储到数组$msg[]

下一步,这是我真正的问题:

我想在将要发送的邮件中显示整个选择。所以到那时我有:

$to = "a@b.cd";
$subject = "some text";
$message = "some text... 

show what was selected:

$msg

end text";...

通常我知道我必须使用foreach:

<?php if(isset($msg)):?>
    <?php foreach($msg as $m):?> 
        <p>
        <?php echo $m;?>
        </p>
    <?php endforeach;?>
<?php endif;?>

使其可见。我的问题是将这个消息从邮件实现到该引号中。

所以,如果有人可以帮助我,我真的很感激。

非常感谢。

2 个答案:

答案 0 :(得分:1)

只需使用字符串连接,在PHP中使用(点)运算符完成。

$message = "some text... \n\nshow what was selected:\n\n";

foreach ($a as $b)
{
    $message .= $b . "\n";
}

$message .= "end text";

此外,你应该研究你的变量命名($ a不是真正的描述),$ a是一个数组,所以你不能if ($a === '1'),你应该使用in_array()。< / p>

答案 1 :(得分:0)

你应该做

$msg = array();
foreach($a as $checked){
    $msg[$a] = "text$a";
}

然后

<?php if(isset($msg)):?>
    <?php foreach($msg as $k => $m):?> 
        <p>
        <?php echo "$k : $m";>
        </p>
    <?php endforeach;?>
<?php endif;?>