将foreach内部的数组传递到foreach外部的变量中



我从表单中获取数据,并使用wp_mail通过电子邮件发送,因为有多个数据(所有复选框数据),所以显然需要一个foreach。

我无法将数据放在foreach内部并在语句外部使用。

 //My form data
 $checks = $_POST['personalization_result'];
 //Pass the foreach array into this variable and use this to mail
 $checkString = '';
    //For each checkbox data
    foreach ($checks as $k => $v) {
     var_dump ($v);
    }
 //Email the data
 $sent = wp_mail($to, $subject, $checkString, $headers); //I have set up the other variables but its not necessary to add here just focused on $checkString

形式的代码段

<form action="<?php the_permalink(); ?>" method="post"> 
<?php echo $checkString; ?>// Trying to see what the array is doing
<input type="hidden" name="submitted" value="1">
<p><input type="submit"></p>
<li class="option table selected">
    <input type="hidden" value="0" name="personalization_result[memory_0]">
    <input type="checkbox" value="1" name="personalization_result[memory_0]" id="personalization_result_memory_0" checked="checked">                                        
</li> 

<li class="option table selected">
    <input type="hidden" value="0" name="personalization_result[memory_1]">
    <input type="checkbox" value="1" name="personalization_result[memory_1]" id="personalization_result_memory_1" checked="checked">                                    
</li>  

如果这有点无聊,我很抱歉,但这就是我通过提问来学习的方式。

由于wp_mail的第三个参数message是一个字符串,我认为您可以完全避免foreach,并使用array_values将值作为一个数组,并用一些胶水将它们连接起来,而不是循环通过$checks数组。请尝试:

$checkValues = array_values($checks);
$checkString = implode(',', $checkValues); // This generates comma separated list of values.

您可以在内爆函数调用中使用任何您喜欢的胶水(本例中为逗号),这取决于您想要如何显示.$checkValues

最新更新