繁体   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