PHP如何在变量中拆分数组

时间:2013-08-08 08:21:30

标签: php arrays input field var

大家好,我需要帮助!我一周前开始学习php。 我有一个表格为一个联系人POST一些文本字段,我需要在一些变量中拆分数组以放入电子邮件。这是我的代码

$field  = $_POST['input'];
if ( isset( $field ) === TRUE){

foreach ($field as $key => $value) {

    echo '<pre>' , print_r( $value ) , '</pre>'; //to list the array

    }

    $to = $mail;
    $sbj = "thanks to register to $site";
    ..//some headers
    mail($to,sbj,$headers)

}

这是表格

<form action="upload.php" method="POST">
 <input type="text" name="input[]">
 <input type="text" name="input[]">
 <input type="text" name="input[]">
 <input type="submit" value="invia">
</form>

有关将数组上的变量包含在邮件中的任何建议吗?

3 个答案:

答案 0 :(得分:1)

你可以使用implode()函数,它接受一个数组和一个分隔符,并将数组的元素连接成一个字符串,每个元素用你传递的分隔符字符串分隔,例如:

foreach($field as $key=>$value) {
    $input[] = $value;
}

$body = implode("\n",$input); //implode here

$to = $mail;
$sbj = "thanks to register to $site";
..//some headers
mail($to,sbj,$body,$headers) 

这将在电子邮件的单独行中创建您的输入列表。

答案 1 :(得分:1)

@John给出了正确的程序。您可以使用array_push()函数来使用其他过程,例如:

$field  = $_POST['input'];
$info =  array();

foreach ($field as $key => $value) {
 array_push($info,$value);
}

// echo implode(",",$info);
$to = $mail;
$sbj = "thanks to register to $site";
$body = implode(",",$info);
..//some headers
mail($to,sbj,$body,$headers)

答案 2 :(得分:0)

最简单但最丑陋的方法就是使用:

mail($to,sbj,print_r($field, true),$headers);

print_r($field, true)会将值输出到变量,而不是立即将其打印出来。