繁体   English   中英

在电子邮件正文php中的array_chunk

[英]array_chunk in email body php

我有一个表单,用户可以单击按钮添加他需要的尽可能多的partecipants。 对于每个参与者,我有4个领域。 当我单击按钮添加partecipants时,这些字段会自动添加脚本。 这些字段创建为[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

......等......

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

我怎么能写代码来获取它? 提前致谢。

你需要分别implode每个块,然后内implode崩溃的块:

if( isset($postdata) ) {
    $altri = [];
    $chunks = array_chunk($postdata, 4, true);
    foreach ($chunks as $chunk) {
        $altri[] = implode('<br />', $chunk);
    }

    $altri = implode('<hr>', $altri);
}

想想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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM