如何从 php 中的逗号分隔列表生成 sendgrid json 格式

How to generate sendgrid json format from comma seperated list in php

我有以下用逗号分隔的电子邮件:(最多 1000 封电子邮件)

$mylist = 'example1@gmail.com , example2@gmail.com';
$myArray = explode(",", $mylist );

我尝试使用 explodejson_encode 创建数组,得到以下格式

["example1@gmail.com "," example2@gmail.com"]

如何按照以下 json 格式创建 json:

"{\"personalizations\":[{\"to\": [{\"email\": \"example1@gmail.com\"}]},{\"to\": [{\"email\": \"example2@gmail.com\"}]}],\"subject\":\"Hello, World!\",\"from\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"},\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello, World!\"}],\"reply_to\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"}}"

电子邮件应生成为:

[ {\"to\": [{\"email\": \"example1@gmail.com\"}]} , {\"to\": [{\"email\": \"example2@gmail.com\"}]} ]

PLUS(无论我是否不使用 json_encode 生成,生成的数据都应该与上面匹配,因为我正在尝试使用它:

  CURLOPT_POSTFIELDS => "{\"personalizations\":[{\"to\": [{\"email\": \"example1@gmail.com\"}]},{\"to\": [{\"email\": \"example2@gmail.com\"}]}],\"subject\":\"Hello, World!\",\"from\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"},\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello, World!\"}],\"reply_to\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"}}",  

您可以如下使用内爆函数

$arr = ["example1@gmail.com "," example2@gmail.com"];

function add_extra($str) {
    return sprintf('{\"to\": [{\"email\": \"%s\"}]}', $str);
}

echo '[ '.implode(',', array_map('add_extra', $arr)).']';

这应该给出:

[ {\"to\": [{\"email\": \"example1@gmail.com \"}]} , {\"to\": [{\"email\": \"example2@gmail.com\"}]} ]