我需要从json数组中获取一个特殊条目,它应该与id匹配。
{
"response": {
"count": 62,
"inventory": [
{
"id": 10,
"style": 982
},
{
"id": 20,
"style": 0
},
{
"id": 30,
"style": 1
} ]
}}
我现在拥有的一切都是这段代码:
$matching_value = 10;
foreach($json_data as $key => $val){
if($val->id == $matching_value){
echo $val->id;
echo $val->style;
}
}
但它没有用,我也不知道为什么。我的方法不适用于子条目吗?
答案 0 :(得分:1)
你走了。
我的方法不适用于子条目吗?
不喜欢你拥有它。你必须测试你正在迭代的东西, 如果它是一个字符串,int,数组。考虑嵌套等 我已经重新分配$ inventory以使迭代内部数组更容易,让你更接近值
来源:
// JSON string
$json = '{
"response": {
"count": 62,
"inventory": [
{
"id": 10,
"style": 982
},
{
"id": 20,
"style": 0
},
{
"id": 30,
"style": 1
}
]
}}
';
// debugging
var_dump($json, json_decode($json, true));
// decode json to array
$data = json_decode($json, true);
// prepare iteration
// reassign
$inventory = $data['response']['inventory'];
$matching_value = 10;
foreach($inventory as $key => $val)
{
//var_dump($val);
if(isset($val['id']) && $val['id'] === $matching_value)
{
echo 'The ID: ' . $val['id'];
echo 'The Style' . $val['style'];
}
}
输出:
The ID: 10The Style982