我有一个表单,用户可以在其中单击按钮以根据需要添加尽可能多的参与者。对于每个参与者,我有 4 个字段。当我单击按钮添加参与者时,这些字段会自动添加脚本。这些字段被创建为 [data] 所以我在我的 php 文件中有这个来发送电子邮件:

if(isset($_REQUEST['data'])){
$postdata = $_REQUEST['data'];
}

if( isset($postdata) ) {
    $altri = implode('<hr>', array_chunk($postdata, 4, true));

}
else {
    $altri = 'Non sono stati aggiunti altri partecipati a questa richiesta';
}

然后在我的 $body 中,我尝试将结果打印为:
$body = <<<EOD
<strong>Altri partecipanti:</strong><br>$altri<br>

// PHP email sender
mail($to, $sub, $body, $headers);

如您所见,我尝试对电子邮件输出中的这 4 个字段进行分组和分隔,以获得如下内容:
  • field_1_participant_1
  • field_2_participant_1
  • field_3_participant_1
  • field_4_participant_1

  • 分隔器
  • field_1_participant_2
  • field_2_participant_2
  • field_3_participant_2
  • field_4_participant_2

  • ...
    等等...

    我无法让它按预期工作,并且收到“数组到字符串转换”的错误消息

    我如何编写代码来获取它?
    提前致谢。

    最佳答案

    想想 array_chunk 做了什么。它产生一个数组数组,例如

    [ ['f1p1', 'f2p1', 'f3p1', 'f4p1'], ['f1p2', 'f2p2', 'f3p2', 'f4p2'] ]
    

    尝试使用 array_map 将内部数组转换为字符串。例如
    $altri = implode('<hr>', array_map(function($list) {
        return '<ul><li>' . implode('</li><li>', $list) . '</li></ul>';
    }, array_chunk($postdata, 4)));
    

    这产生
    <ul><li>f1p1</li><li>f2p1</li><li>f3p1</li><li>f4p1</li></ul><hr><ul><li>f1p2</li><li>f2p2</li><li>f3p2</li><li>f4p2</li></ul>
    

    关于php - 电子邮件正文中的array_chunk php,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45687078/

    10-16 16:58
    查看更多