将foreach中的数组传递给foreach外的变量?

时间:2013-08-07 15:05:09

标签: php

我从表单中获取数据并使用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>  

对不起,如果这有点小说,但这是我通过询问学习的方式。

1 个答案:

答案 0 :(得分:2)

由于wp_mail的第三个参数message是一个字符串,我认为你可以完全避免使用foreach并使用array_values将值作为数组获取并使用某些胶水连接它们循环遍历$checks数组。请尝试:

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

根据您希望如何显示.$checkValues

,您可以在implode函数调用中使用您喜欢的任何粘合剂(在此示例中为逗号)