2016-12-17 9 views
5
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "X-Shopify-Access-Token: $token")); 
$translation_json = curl_exec($ch); 
$translation_decoded= json_decode($translation_json, true); 

結果は次のとおりです。私はjson応答からこの配列を復号し、これをループする問題に直面してphp json_decode配列の値の使い方は?

Array 
(
    [asset] => Array 
     (
      [key] => locales/en.default.json 
      [public_url] => 
      [value] => { 
    "general": { 
    "accessibility": { 
     "skip_to_content": "Skip to content", 
     "close_modal": "Close (esc)" 
    }, 
    "meta": { 
     "tags": "Tagged \"{{ tags }}\"", 
     "page": "Page {{ page }}" 
    }, 
    "404": { 
     "title": "404 Page Not Found", 
     "subtext": "The page you requested does not exist.", 
     "link": "Continue shopping" 
    }, 
    "pagination": { 
     "previous": "Previous", 
     "next": "Next", 
     "current_page": "Page {{ current }} of {{ total }}" 
    }, 
    "password_page": { 
     "opening_soon": "Opening Soon", 
     "login_form_heading": "Enter store using password", 
     "login_form_password_label": "Password", 
     "login_form_password_placeholder": "Your password", 
     "login_form_submit": "Enter", 
     "signup_form_email_label": "Email", 
     "signup_form_success": "We will send you an email right before we open!", 
     "admin_link_html": "Are you the store owner? Log in here<\/a>", 
     "password_link": "Enter using password", 
     "powered_by_shopify_html": "This shop will be powered by {{ shopify }}" 
    }, 
    "social": { 
     "share_on_facebook": "Share", 
     "share_on_twitter": "Tweet", 
     "share_on_pinterest": "Pin it", 
     "alt_text": { 
     "share_on_facebook": "Share on Facebook", 
     "share_on_twitter": "Tweet on Twitter", 
     "share_on_pinterest": "Pin on Pinterest" 
     } 
    }, 
    "search": { 
     "no_results_html": "Your search for \"{{ terms }}\" did not yield any results.", 
     "results_with_count": { 
     "one": "{{ count }} result for \"{{ terms }}\"", 
     "other": "{{ count }} results for \"{{ terms }}\"" 
     }, 
     "title": "Search our site", 
     "placeholder": "Search", 
     "submit": "Submit", 
     "close": "Close search" 
    }, 
    "newsletter_form": { 
     "newsletter_email": "Join our mailing list", 
     "email_placeholder": "Email address", 
     "confirmation": "Thanks for subscribing", 
     "submit": "Subscribe" 
    }, 
    "filters": { 
     "show_more": "Show More", 
     "show_less": "Show Less" 
    } 
    }, 

accessibility404password_pagesocial以上の値を使用します。これからどのように価値を得るのですか?

+1

あなたはおそらくちょうどに1より多くの時間をデコードする必要があり、 '$ translation_decoded [「資産」] [」値 ']'を使用してその値を別の配列に変換します。 – Rasclatt

+0

OK、でもネストされた値があります。だから私は入れ子にされた値ごとにこれをしなければならないのですか? –

+0

その値はjsonで符号化されているので、jsonとして一貫してコード化されている他の値がある場合は、yes – Rasclatt

答えて

2

それはまだJSON形式で、あなたは、配列あなたがこの方法を使用することができます

$decode = json_decode($translation_decoded['asset']['value']); 
1
$accessibility=$translation_decoded['asset']['value']['general']['accessibility'] ; 
$social=$translation_decoded['asset']['value']['social'] ; 
$password_page=$translation_decoded['asset']['value']['password_page'] ; 
$Page404=$translation_decoded['asset']['value']['404'] ; 

にそれを作るために再び値をデコードする必要があるため。これを試してください。

0

あなたjson_decode funcitonに第三$depthオプションを追加し、どのようにそれはmanualを参照してください使用すると、このpost

$translation_decoded= json_decode($translation_json, true, $depth);