Как извлечь письма из JSON в массиве PHP? - PullRequest
0 голосов
/ 22 февраля 2011

Как я могу получить электронные письма из этого массива?

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 ]

2 голосов
/ 22 февраля 2011

Похоже, что каждая из строк в этом массиве JSON data.

Если вы используете современную версию PHP, вы можете использовать json_decode() чтобы получить данные в удобном для использования формате.

foreach($array as $string) {
    $json = json_decode($string);
    echo "Email = {$json->email}\n";
}
1 голос
/ 22 февраля 2011

вы можете запустить регулярное выражение для каждого элемента массива. как то так: /"email":"(.+?)"/

$emails = array();
foreach ($array as $str)
{
    if (preg_match('/"email":"(.+?)"/', $str, $matches))
    {
        $emails[] = $matches[1];
    }
}
1 голос
/ 22 февраля 2011

Если бы вы могли опубликовать пример данных (например: откуда они взяты, правильно отформатированный пример вывода print_r() массива), который мог бы помочь, однако из того, что я могу собрать, вы получите электронные письма отмассив:

/* Make $array hold the given array */

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

// All emails
print_r($emails);
...