我有一个post调用,以两种方式之一返回JSON:
$json1 = '{"found":1,"email":"email1@domain.com","error":"","rd":"email2@domain.com"}';
$json2 = '{"found":1,"email":"email1@domain.com,email2@domain.com","error":"","rd":"email3@domain.com,email4@domain.com"}';
在第一个参数中,
email
和 rd
只有一个电子邮件地址。在第二个参数中,这两个参数都有多个收件人。我需要从每个参数中获取电子邮件并将其添加到已经存在的数组中:
$recipients = array('support@domain.com');
使用以下代码,我可以让它与$json1
变量一起工作:
array_push($recipients, $obj->{'rd'}, $obj->{'email'});
第二个JSON选项较少使用,但我仍需要相同的代码适用于两种情况。目前,如果我使用上述代码处理第二个JSON数据,则会返回以下内容:
Array
(
[0] => support@sculpturehospitality.com
[1] => email3@domain.com,email4@domain.com
[2] => email1@domain.com,email2@domain.com
)
这个问题是在同一参数中有多封电子邮件的情况。有人知道怎么将每个数组项内的电子邮件分开吗?
这里有一个可行的示例:
http://sandbox.onlinephpfunctions.com/code/24c4a1eaea98566b65cd36e221dd1f185e820ea6
assoc flag = true
,即json_decode($json_string, TRUE);
,这样你的对象就会被转换为数组,你可以使用$obj['email']
这样的语法来操作,而不是$obj->{'email'}
。 - MonkeyZeus