0

我有这个 PHP 代码:

while($contacts2=mysql_fetch_array($rs))
    {
        //generate the list of emails address in an array
        $emails_list[] = $contacts2["email"];
    }

所以它将我所有的结果放入一个数组但是当我$emails_list在while循环之外回显时它只是显示Array

我怎样才能让它显示如下:

result1,result2,result3ETC

4

6 回答 6

1

这是你的答案

while($contacts2=mysql_fetch_array($rs))
{
     //generate the list of emails address in an array
     $emails_list[] = $contacts2["email"];
}

$emails_list = implode(',', $emails_list);
echo "(". $emails_list . ")";

我觉得你应该试试这样

$mail->AddAddress('person1@domain.com', 'Person One');
$mail->AddAddress('person2@domain.com', 'Person Two');

使用PHPMailer,您可以这样做,

while($contacts2=mysql_fetch_array($rs))
{
    $mail->AddAddress($contacts2['emails'], $contacts2['name']);
}
于 2013-10-07T10:06:09.423 回答
1

$emails_list是一个数组,所以你必须遍历它来打印它的值:

foreach ($emails_list as $email) {
  print "email: $email";
}

请注意,如果要打印特定值,可以使用$emails_list[index]. print $emails_list[0]例如,您可以这样做。

如果您想同时打印所有值,请执行以下操作:

echo "(" . implode(',',$emails_list) . ")";

测试

$a=array(1,2,3);
echo "(" . implode(',',$a) . ")";

退货

(1,2,3)

更新

您在http://pastebin.com/BwWZFrzZ中的代码表明您正在使用:

echo 'Email sent to:' . $emails_list . '<br/ >';

所以你可以打印

echo 'Email sent to: (' . implode(',',$emails_list) . ')<br/ >';

更新 2

根据它来自的 github 代码 ( https://github.com/PHPMailer/PHPMailer ),您需要一次添加一封电子邮件:

//this is some clever **** to do with sending emails with attachments :D
$email = new PHPMailer();

while($contacts2=mysql_fetch_array($rs))
   $email->AddAddress($contacts2["email"]);
}

$email->From      = '...';
于 2013-10-07T10:02:59.123 回答
0

implode() 函数从数组的元素中返回一个字符串。

 echo implode(",",$emails_list);
于 2013-10-07T10:05:18.400 回答
0
array_push($emails_list,$contacts2["email"]);

然后打印$emails_list循环外部可能会解决您的问题

于 2013-10-07T10:05:25.610 回答
0

试试这个代码

while($contacts2=mysql_fetch_array($rs))
    {
        //generate the list of emails address in an array
        array_push($emails_list,$contacts2["email"]);
    }

要显示数组数据,您可以使用 print_r 检查(只是检查它是否有效)

print_r($emails_list)

您可以创建一个循环来一一获取数据,如下所示

for(int i=0;i<count($emails_list);$i++)
{
  echo $emails_list[$i]."<br>";
}
于 2013-10-07T10:12:58.630 回答
0

尝试这个

echo implode(',', $emails_list);

在这里你会找到完整的细节php implode

于 2013-10-07T10:04:17.233 回答