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

如何将foreach遍历get_user_meta返回的邮箱值用逗号分隔适配wp_mail

最优实现方案(无需手动遍历)

你不需要自己写foreach处理拼接,PHP内置的implode()函数可以直接把数组元素按指定分隔符拼接成字符串,完全符合你的需求:

// 读取邮箱数组
$email_array = get_user_meta($vendor_id, 'list_email', false);
// 直接用逗号+空格拼接成字符串
$email_str = implode(', ', $email_array);
// 输出测试:1@gmail.com, 2@hotmail.com, 3@gmail.com
echo $email_str;
// 直接传给wp_mail即可
wp_mail($email_str, '邮件标题', '邮件内容');

手动foreach实现方式(适合需要自定义逻辑的场景)

如果要自己实现「从第二个元素开始前面加逗号」的逻辑,提供两种可直接用的写法:

方式1:计数器判断

$email_array = get_user_meta($vendor_id, 'list_email', false);
$email_str = '';
$count = 0;
foreach ($email_array as $em) {
    // 第一个元素前面不加逗号,从第二个开始前面加逗号和空格
    if ($count > 0) {
        $email_str .= ', ';
    }
    $email_str .= $em;
    $count++;
}
echo $email_str;

方式2:判断字符串是否为空

$email_array = get_user_meta($vendor_id, 'list_email', false);
$email_str = '';
foreach ($email_array as $em) {
    // 拼接前判断结果是不是空,空的话直接加,否则前面补逗号
    $email_str .= $email_str === '' ? $em : ', ' . $em;
}
echo $email_str;

额外提示

wp_mail函数的收件人参数本身就支持直接传入邮箱数组,如果你没有其他特殊需求,完全可以不用拼接成字符串,直接传读取到的数组即可:

$email_array = get_user_meta($vendor_id, 'list_email', false);
wp_mail($email_array, '邮件标题', '邮件内容');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:03