PHP JSON数组多级



我在处理JSON数组解析时陷入了困境。

我需要获取一个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的"Options"部分中的数组值,但简单地添加一个额外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'];
}

我不能正确理解,你可以直接通过选择选项

$Options = $item['Options'];

请提供您的预期输出

编辑:你可能想要这个

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

这完全消除了foreach循环,删除foreach循环并添加行上

最新更新