簡體   English   中英

PHP JSON 陣列多級

[英]PHP JSON Array Multi Level

我被困在試圖處理 JSON Array Parse 的泡菜中。

我需要一個 JSON 數組並將信息分解出來。

JSON 飼料如下——

[
    {
        "ID": "344",
        "MaxOptions": 4,
        "MinOptions": 0,
        "ModifierGUID": "",
        "Name": "Remove Items",
        "Options": [
            {
                "DefaultOption": true,
                "Description": "",
                "ID": "68557",
                "MaxSelections": 99,
                "Name": "Remove Tomato ",
                "OptionGUID": "",
                "OptionItemID": "8e362d67-2a1e-4a31-9b54-48b19a147813",
                "PLU": "",
                "Price": 0.0000,
                "TakeawayPrice": 0
            },
            {
                "DefaultOption": true,
                "Description": "",
                "ID": "69254",
                "MaxSelections": 4,
                "Name": "Remove Cheese",
                "OptionGUID": "",
                "OptionItemID": "f1dbaaf5-be18-462b-8c7a-6207cb3deaf3",
                "PLU": "",
                "Price": 0.0000,
                "TakeawayPrice": 0
            }
           ]
        }
]

我最初運行了以下代碼來解碼 JSON

$json_url = ""; // INSIDE QUOTES THE JSON URL
$json_value = file_get_contents($json_url);
$array = json_decode($json_value,true);
foreach($array as $item) {
echo $item['ID']; // This Returns "344"
}

這是正確的,但是我現在需要運行一個額外的 foreach 來獲取 JSON 的“選項”部分中的數組值,但只是簡單地添加一個額外的 foreach 似乎並不像想要的那樣!

我敢肯定這將是一個簡單的修復,但我似乎無法弄清楚!

謝謝您的幫助!

我無法正確理解,您可以直接通過 select Options by

$Options = $item['Options'];

請提供您預期的 output

編輯:你可能想要這個

$Options = array_column($array, 'Options');

這完全消除了你的 foreach 循環,刪除 foreach 循環並添加上面的行

你可以簡單地這樣做:

$json_url = ""; // INSIDE QUOTES THE JSON URL
$json_value = file_get_contents($json_url);
$array = json_decode($json_value,true);
foreach($array as $item) {
    echo $item['ID']; // This Returns "344"
    foreach($item['Options'] as $option) {
        //do the needed processing here
    }
}

嘗試這個:

$array = json_decode($json_value,true);
$opt = $array['Options'];
foreach($opt as $item) {
    echo $item['ID'];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM