2016-07-11 102 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文件實際上是Web服務調用的輸出。我可以直接使用該Web服務響應而不是複製到文件然後使用它? – user3762051