You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP多复选框值无法发送至邮箱,仅显示‘ARRAY’问题求助

解决PHP表单多选复选框邮件显示ARRAY的问题

嗨,我来帮你搞定这个复选框值在邮件里显示成ARRAY的问题~

问题原因

你设置的复选框name是healthcover[],这意味着表单提交后,PHP会把它作为数组来接收。但你当前的代码直接把数组拼接到邮件文本里,PHP会自动将数组转换成字符串Array,所以邮件里就出现了这个奇怪的内容。

解决方案

只需要在遍历表单字段的时候,判断一下当前值是不是数组,如果是,就把它转换成可读性强的字符串格式(比如逗号分隔的选项,或者分行的列表)。

修改你PHP代码里的foreach循环部分:

原来的代码:

foreach ($_POST as $key => $value) {
    if (isset($fields[$key])) {
        $emailText .= "$fields[$key]: $value\n";
    }
}

替换成下面的代码:

foreach ($_POST as $key => $value) {
    if (isset($fields[$key])) {
        // 检查当前值是否为数组
        if (is_array($value)) {
            // 方案1:用逗号分隔选中的选项
            $formattedValue = implode(", ", $value);
            // 方案2:每个选项单独占一行(更易读)
            // $formattedValue = "\n- " . implode("\n- ", $value);
            
            $emailText .= "$fields[$key]: $formattedValue\n";
        } else {
            $emailText .= "$fields[$key]: $value\n";
        }
    }
}

修改后的效果

如果用户选中了Life Insurance和Critical Illness Cover,用方案1的话,邮件里对应的内容会变成:

所需保障类型:Life Insurance, Critical Illness Cover

如果用方案2的话,会变成:

所需保障类型:

  • Life Insurance
  • Critical Illness Cover

这样就能正常显示用户选中的所有选项啦~

内容的提问来源于stack exchange,提问作者Rintu Gochhayat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:53:01