解析JSON:多级数组

我需要从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
上一篇:如果在ON子句中使用OR,MySQL将不会在JOIN中使用可用索引


下一篇:Google机器人会从javascript document.write()索引文本吗?