关于php:如何将数组实现成带引号的文本

how to implement array into text with quotation marks

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

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

我喜欢评估 a[] 的多个选择以查看选择了什么,这就是我必须使用数组的原因。

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

1
2
3
4
if (isset($_POST['submit'])) {

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

我还喜欢为每个选定的值设置一些消息到另一个数组中:

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

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

下一步,我真正的问题来了:

我喜欢在将要发送的邮件中显示整个选择。所以到目前为止我有:

1
2
3
4
5
6
7
8
9
$to ="[email protected]";
$subject ="some text";
$message ="some text...

show what was selected:

$msg

end text"
;...

所以通常我知道我必须像这样使用 foreach:

1
2
3
4
5
6
7
<?php if(isset($msg)):?>
    <?php foreach($msg as $m):?>
        <p>
        <?php echo $m;?>
        </p>
    <?php endforeach;?>
<?php endif;?>

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

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

非常感谢。


只需使用字符串连接,这在 PHP 中是使用 . (点)运算符。

1
2
3
4
5
6
7
8
9
10
11
12
13
$message ="some text... \
\
show what was selected:\
\
"
;

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

$message .="end text";

此外,您应该查看变量命名($a 不是真正的描述性),并且 $a 是一个数组,因此您不能使用 if ($a === '1'),您应该使用 in_array()


你应该这样做

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

然后

1
2
3
4
5
6
7
<?php if(isset($msg)):?>
    <?php foreach($msg as $k => $m):?>
        <p>
        <?php echo"$k : $m";>
        </p>
    <?php endforeach;?>
<?php endif;?>