无法从我的数组创建逗号分隔列表

时间:2014-04-02 14:47:44

标签: php arrays comma

我是PHP的新手。 这是我的代码:

    $email_db = mysql_query("SELECT emails FROM email_feeds") or die(mysql_error());
    $recipients = array();

    while($row = mysql_fetch_assoc( $email_db )){

        $recipients[] = $row;

    }

    $sendTo = implode(', ', $recipients);
    echo($sendTo);

我在这里尝试从我的数据库中的 email_feeds 表中获取电子邮件列中的数据,然后将其放入数组中( $ recipients )然后以逗号分隔的形式回复它。

E.g。 john@mysite.com,mike,mysite.com,claire@mysite.com

我的问题是当我运行它时会显示"数组到字符串转换" 通知。

请帮忙! :)

2 个答案:

答案 0 :(得分:0)

mysql_fetch_assoc返回列数组 即使您只有一列,它仍然是包含该列的数组。

所以,当你这样写:

$recipients[] = $row;

您要将新的数组添加到$recipients,而不是新字符串。
Imploding $recipients试图将数组内爆,就像它们是字符串一样,它们不是。

尝试:

$recipients[] = $row['emails'];

阅读the documentation for the function you're using
特别是要密切注意大红色的弃用警告。

答案 1 :(得分:0)

您正在使用mysql_fetch_assoc,它返回一个关联数组。你真的应该切换到mysqli函数。不推荐使用mysql_个函数。当它返回一个数组时,您将在此处为收件人数组中的每个元素分配一个完整的数组:

$recipients[] = $row;

你需要的只是数组中的字符串,所以你可以这样做:

$recipients[] = $row['emails'];