获取所有数组值,然后在PHP中将其设置为foreach函数
我在下面有一个foreach函数:获取所有数组值,然后在PHP中将其设置为foreach函数,php,arrays,Php,Arrays,我在下面有一个foreach函数: foreach ($agg as $dep => $emails) { $result[] = [ 'DEPARTMENTID_FK' => $dep, 'to' => implode(',', $emails), ]; } echo $to = $result[0]['to']; $host = 'smtp.office365.com'; $port = '587'; $u
foreach ($agg as $dep => $emails)
{
$result[] = [
'DEPARTMENTID_FK' => $dep,
'to' => implode(',', $emails),
];
}
echo $to = $result[0]['to'];
$host = 'smtp.office365.com';
$port = '587';
$username = 'donotreply@test.com;
$password = 'sw0052?';
$headers = array(
'Port' => $port,
'From' => $from,
'To' => $to,
'Subject' => $subject,
'Content-Type' => 'text/html; charset=UTF-8'
);
$recipients = $to.", ".$bcc;
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($recipients, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
使用
电子邮件ID已经存在
你只需要把它们取出来,然后内爆()
成一个刺
$to = implode($agg);
使用变量将
存储到
字符串,并回显
它在循环中:
foreach ($agg as $dep => $emails)
{
$to = implode(',', $emails);
$result[] = [
'DEPARTMENTID_FK' => $dep,
'to' => $to,
];
echo $to; // print it
}
更新
$toList = [];
foreach ($agg as $dep => $emails) {
$to = implode(',', $emails);
$result[] = [
'DEPARTMENTID_FK' => $dep,
'to' => $to,
];
$toList[] = $to;
}
$toString = implode(',', $toList);
我想我现在明白你想做什么了。
试试这个
它将在每个部门循环并收集所有电子邮件
foreach ($agg as $dep)
{
$temparr[] = dep['to'];
}
$youremails = implode(",", $temparr);
echo $youremails; // comma separated list.
事实上,我已经根据部门划分了电子邮件地址。如果我使用你的代码,所有的电子邮件都会显示出来。我需要的是基于部门运行的代码感谢更新,但我的意思是,正如您在打印结果中看到的,DP0023有一个电子邮件地址:alwis。david@gmail.com,阿尔维斯。david@live.comDP0026有一个电子邮件地址:david。alwis@siix.com.sg. 我需要在那里设置电子邮件功能,所以电子邮件功能将向这两个部门发送2次。哇。现在我们看到了这个问题的答案,这个问题的质量是显而易见的。这是一个可怕的问题表述方式@Hidayurieca可以转储数组以便我们看到它的样子吗?我有点困惑为什么你要尝试$result**[0]**['to']Hi@Andreas请看我更新的帖子那就是$agg数组?你想做什么?我的意思是,正如你在打印结果中看到的,DP0023有一个电子邮件地址:alwis。david@gmail.com,阿尔维斯。david@live.comDP0026有一个电子邮件地址:david。alwis@siix.com.sg. 我需要在那里设置电子邮件功能,因此电子邮件功能将向这两个部门发送2次。所以您需要从阵列中提取数据,而不是构建阵列?您的问题包含构建数组的代码。有点混乱。您可以看到DP0023=“alwis。david@gmail.com,阿尔维斯。david@live.com“和DP0026=”大卫。alwis@siix.com.sg“我只想根据这两个部门发送电子邮件。如果我现在使用你的代码,它只会发送一次到所有电子邮件列表。我真的不明白你期望的是什么:D
$toList = [];
foreach ($agg as $dep => $emails) {
$to = implode(',', $emails);
$result[] = [
'DEPARTMENTID_FK' => $dep,
'to' => $to,
];
$toList[] = $to;
}
$toString = implode(',', $toList);
foreach ($agg as $dep)
{
$temparr[] = dep['to'];
}
$youremails = implode(",", $temparr);
echo $youremails; // comma separated list.