2016-12-31 3 views
0

Пожалуйста, ознакомьтесь следующий код, я использую:Получение PHP переменных внутри цикла Еогеасп из JSON

<?php 

$head = '[ { "status": "active", "confirmed_opt_in": null, "account_id": 1738888, "fields": { "first_name": "Ash", "last_name": "Wright" }, "member_id": 262268888, "last_modified_at": "@D:2016-12-30T19:58:25", "member_status_id": "a", "plaintext_preferred": false, "email_error": null, "member_since": "@D:2014-05-05T16:01:21", "bounce_count": 0, "deleted_at": null, "email": "[email protected]" } ]'; 

$data = json_decode($head,true); // the second param will cast it as array, default is obejct. See the linked docs of json_decode! 
foreach($data as $item) { 
    $id=$item['member_id']; 
    $email=$item['email']; 
    echo "ID: $id EMAIL: $email<br/>"; 
    // put your code here to write into DB or whatever you wanna do! 
} 

?> 

В дополнение к $id и $email переменных я также хотел бы, чтобы захватить имя и фамилию из над возвратом JSON, чтобы иметь переменные для имени и фамилии. Может кто-то пожалуйста, чтобы я синтаксис, чтобы выполнить это?

+2

Возможный дубликат [JSon доступа к данным из PHP] (http://stackoverflow.com/questions/2622324/access-json-data-from-php) –

ответ

1

Вы должны print_r ваш декодированный массив json. Имя и фамилия находятся в поле «поля».

echo "<pre>"; 
print_r($data); 

Массив:

Array 
(
    [0] => Array 
    (
     [status] => active 
     [confirmed_opt_in] => 
     [account_id] => 1738888 
     [fields] => Array 
      (
       [first_name] => Ash 
       [last_name] => Wright 
      ) 

     [member_id] => 262268888 
     [last_modified_at] => @D:2016-12-30T19:58:25 
     [member_status_id] => a 
     [plaintext_preferred] => 
     [email_error] => 
     [member_since] => @D:2014-05-05T16:01:21 
     [bounce_count] => 0 
     [deleted_at] => 
     [email] => [email protected] 
    ) 

) 

Решение:

$first_name = $item['fields']['first_name']; 
$last_name = $item['fields']['last_name']; 

echo "Name : ". $first_name . ' '.$last_name; 
0

Вы должны попробовать два thinging, вот Muliple массив 1) декодирования JSON

Array 

( [0] => Массив ( [статус] => активный [confirmed_opt_in] => [account_id] => 1738888 [поля] => Массив ( [first_name] => Зола [last_name] => Райт )

 [member_id] => 262268888 
     [last_modified_at] => @D:2016-12-30T19:58:25 
     [member_status_id] => a 
     [plaintext_preferred] => 
     [email_error] => 
     [member_since] => @D:2014-05-05T16:01:21 
     [bounce_count] => 0 
     [deleted_at] => 
     [email] => [email protected] 
    ) 

)

Используется для цикла или цикл Еогеаспа для получения Mulitple массива значений

foreach ($data as $key => $value) { 
    $first_name = $value['fields']['first_name']; 
    $last_name = $value['fields']['last_name']; 
} 

вы должны напечатать first_name и last_name

echo "Name : ".$first_name." ".$last_name; 

2) Использование экстракта() в цикле Еогеаспа

foreach ($data as $key => $value) { 
    extract($value); 
    $first_name = $fields['first_name']; 
    $last_name = $fields['last_name']; 
} 

печать first_name и last_name

echo "Name : ".$first_name." ".$last_name; 

Если вам нужно печатать непосредственно First_name и last_name, то вы должны попробовать это.

foreach ($data as $key => $value) { 
    extract($value); 
    extract($fields); 
    echo "Name : ".$first_name." ".$last_name; 
} 
Смежные вопросы