我需要从json输出中获取一个项目,但是json内容并不总是一致的.
例如,如果我想获取“名称”的值,它将为[‘result’] [‘attributes’] [0] [‘name’];
但是,如果将json作为第二个示例提供,它将是[‘result’] [‘attributes’] [1] [‘name’];
{"result":{
"attributes":[
{"user":"newb","name":"mike"},
{"state":"california","city":"los angeles"}
]
}}
{"result":{
"attributes":[
{"state":"california","city":"los angeles"},
{"user":"newb","name":"mike"}
]
}}
如果它所在的数组的索引未知,我如何获得“名称”值?
解决方法:
这会将索引返回到属性数组,该数组包含名称属性为“ mike”的对象.
function extractNameFromJson($json) {
foreach ($json->result->attributes as $i => $attribute) {
if (isset($attribute['name']) && $attribute['name'] == 'mike') {
return $i;
}
}
}
$index = extractNameFromJson($json);
echo $json->result->attributes[$index]['user'];
==> newb