Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取所有数组值,然后在PHP中将其设置为foreach函数_Php_Arrays - Fatal编程技术网

获取所有数组值,然后在PHP中将其设置为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函数:

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.