2016-07-11 4 views
1

Мое требование - получить доступ к ответу json, сохранить его в переменной php, чтобы я вставлял эти переменные в базу данных. Вот мой кодНевозможно печатать многомерные массивы

$jsondata = file_get_contents('dealdetails.json'); 
$array = json_decode($jsondata, true); 
$arrlength = count($array); 
echo $arrlength; 

for ($x = 0; $x < $arrlength; $x++) 
{ 
    //echo $x; 
    $PromoID = $array[$x]['PromoID']; 
    $OfferID = $array[$x]['OfferID']; 
    $OfferName = $array[$x]['OfferName']; 
    $Type = $array[$x]['Type']; 
    $Code = $array[$x]['Code']; 
    $Title = $array[$x]['Title']; 
    $Description = $array[$x]['Description']; 
    $Category = $array[$x]['Category']; 
    $OfferPage = $array[$x]['OfferPage']; 
    $DateAdded = $array[$x]['DateAdded']; 
    $Expiry = $array[$x]['Expiry']; 

    echo "<br>"; 
} 

Не удалось получить значения, присвоенные во время итерации

Пример: массива $ [0] [ 'promoId'] работает Где, как массива $ [$ X] [ 'promoId' ] не работает.

пример запроса Json:

[{"featured":"0","exclusive":"1","promo_id":"xxx","offer_id":"x","offer_name":"xxx","coupon_title":"xx","category":"","coupon_description":"","coupon_type":"Coupon","coupon_code":"xxx","ref_id":"xxx","link":"xxx","coupon_expiry":"2017-03-31","added":"2016-01-05","preview_url":"http:\/\/www.stalkbuylove.com\/","store_link":"http:\/\/tracking.vcommission.com\/aff_c?offer_id=230&aff_id=43367"}, 
[{"featured":"0","exclusive":"1","promo_id":"xxx","offer_id":"x","offer_name":"xxx","coupon_title":"xx","category":"","coupon_description":"","coupon_type":"Coupon","coupon_code":"xxx","ref_id":"xxx","link":"xxx","coupon_expiry":"2017-03-31","added":"2016-01-05","preview_url":"http:\/\/www.stalkbuylove.com\/","store_link":"http:\/\/tracking.vcommission.com\/aff_c?offer_id=230&aff_id=43367"}, 

Просьба предложить.

+2

действительно сложно понять ваш вопрос, пожалуйста, перефразируйте его. –

+0

@OfirBaruch: Извините за причиненные неудобства. Переформулированный вопрос Пожалуйста, предложите – user3762051

+0

$ array [x] будет $ array [$ x], $ x для значения даже не '$ x' – developerCK

ответ

2

попробовать что-то вроде этого:

$jsondata = file_get_contents('dealdetails.json'); 
$array = json_decode($jsondata, true); 

foreach ($array as $key => $value) 
{ 
    //print_r($value); 

    echo $value['PromoID']; 
    $PromoID = $value['PromoID']; 
    $OfferID = $value['OfferID']; 
    $OfferName = $value['OfferName']; 
    $Type = $value['Type']; 
    $Code = $value['Code']; 
    $Title = $value['Title']; 
    $Description = $value['Description']; 
    $Category = $value['Category']; 
    $OfferPage = $value['OfferPage']; 
    $DateAdded = $value['DateAdded']; 
    $Expiry = $value['Expiry']; 

    echo "<br>"; 
} 

Использование foreach() правильный способ для перебора массива.

Также обратите внимание, что образец JSON, который вы предоставили, использует promo_id вместо PromoID, поэтому вы хотите, чтобы $value['promo_id'].

+0

Спасибо за вашу помощь. Теперь работает. – user3762051

+0

Без проблем, рад помочь! :) – Will

+0

Будет ли небольшая помощь. Фактически json-файл, который я использую сейчас, на самом деле является результатом вызова веб-службы. Могу ли я напрямую использовать этот ответ веб-службы вместо копирования в файл, а затем использовать его? – user3762051

Смежные вопросы