如何正确地将 PHP 变量设置为数组
How do I set a PHP variable to an array correctly
我正在为 PHP 使用 Swift 邮件程序,有时会有多个电子邮件地址要发送到。继承了一个数据库,每个单元格有多个电子邮件地址,仅用逗号分隔,因此将其更改为正确的标准是不可行的。
当我在 Swift Mailer 的 sendTo 字段中使用以下内容时,它工作正常。
$email = array('name@email.com', 'name@email.com', 'name@email.com'); // Works
但是数据库中的电子邮件地址是
的形式
name@email.com,name@email.com,name@email.com
我试过的是下面的。
$dbemails = "name@email.com,name@email.com,name@email.com"; // Fetched
$dbemailsrp = str_replace(",", "', '", $dbemails); // Replace , with ', '
$dbemailscp = "'".$dbemailsrp."'"; // Add front and back '
$email = array($dbemailscp); // Doesn't work
然后我尝试将 $email 放入 swift 邮件程序中,在完成此过程后它不起作用,但如果我手动设置数组,如第一段代码所示,它会起作用。
知道为什么以这种方式构建数组不起作用吗?
您的代码不会创建数组,它会创建一个包含单个项目作为字符串的数组。您需要将电子邮件地址拆分成一个数组,您可以使用 explode
函数来完成此操作,即:
$emails = explode(",", "name@email.com,name@email.com,name@email.com");
我正在为 PHP 使用 Swift 邮件程序,有时会有多个电子邮件地址要发送到。继承了一个数据库,每个单元格有多个电子邮件地址,仅用逗号分隔,因此将其更改为正确的标准是不可行的。
当我在 Swift Mailer 的 sendTo 字段中使用以下内容时,它工作正常。
$email = array('name@email.com', 'name@email.com', 'name@email.com'); // Works
但是数据库中的电子邮件地址是
的形式name@email.com,name@email.com,name@email.com
我试过的是下面的。
$dbemails = "name@email.com,name@email.com,name@email.com"; // Fetched
$dbemailsrp = str_replace(",", "', '", $dbemails); // Replace , with ', '
$dbemailscp = "'".$dbemailsrp."'"; // Add front and back '
$email = array($dbemailscp); // Doesn't work
然后我尝试将 $email 放入 swift 邮件程序中,在完成此过程后它不起作用,但如果我手动设置数组,如第一段代码所示,它会起作用。
知道为什么以这种方式构建数组不起作用吗?
您的代码不会创建数组,它会创建一个包含单个项目作为字符串的数组。您需要将电子邮件地址拆分成一个数组,您可以使用 explode
函数来完成此操作,即:
$emails = explode(",", "name@email.com,name@email.com,name@email.com");