如何从PHP数组中的JSON中提取电子邮件?

时间:2011-02-22 07:13:17

标签: php arrays json

如何从此阵列收到电子邮件?

array(16) { 
    [0]=> string(273) ""guid":"","contactId":"44","contactName":"_, atri","email":"atri_megrez@yahoo.com","emaillink":"http:\/\/mrd.mail.yahoo.com\/compose?To=atri_megrez%40yahoo.com","isConnection":false,"connection":"","displayImg":null,"msgrID":"atri_megrez","msgrStatus":"","isMsgrBuddy":122}," 
    [1]=> string(260) ""guid":"","contactId":"100","contactName":"afrin","email":"fida_cuty123@yahoo.com","emaillink":"http:\/\/mrd.mail.yahoo.com\/compose?To=fida_cuty123%40yahoo.com","isConnection":false,"connection":"","displayImg":null,"msgrID":"","msgrStatus":"","isMsgrBuddy":false}," 
    [2]=> string(258) ""guid":"","contactId":"101","contactName":"afrin","email":"waliyani@yahoo.com","emaillink":"http:\/\/mrd.mail.yahoo.com\/compose?To=waliyani%40yahoo.com","isConnection":false,"connection":"","displayImg":null,"msgrID":"","msgrStatus":"","isMsgrBuddy":false},"
}

3 个答案:

答案 0 :(得分:2)

看起来该数组中的每个字符串都是JSON数据。

如果您使用的是现代版本的PHP,则可以使用json_decode()将数据转换为可用格式。

foreach($array as $string) {
    $json = json_decode($string);
    echo "Email = {$json->email}\n";
}

答案 1 :(得分:1)

如果你可以发布一个数据的例子(例如:它来自哪里,一个格式正确的数组print_r()输出的例子),这将有所帮助,但是从我可以收集到的,这将得到来自阵列的电子邮件:

/* Make $array hold the given array */

$emails = array();
foreach($array as $contact){
    $emails[] = $contact['email'];
}

// All emails
print_r($emails);

答案 2 :(得分:1)

你可以在每个数组元素上运行一个正则表达式。像这样:/“email”:“(。+?)”/

$emails = array();
foreach ($array as $str)
{
    if (preg_match('/"email":"(.+?)"/', $str, $matches))
    {
        $emails[] = $matches[1];
    }
}