duangaixing1509 2016-06-05 07:45
浏览 53
已采纳

json在动态父级中获取子级的值

Using PHP. How would I get clanAbbrev from a dynamic parent where it also contains "team" : "2"? I don't need to get it from every player, I just need to search it until I find the first player on Team 2. All players on team 2 are in the same "clan" and that is all I am trying to do is to get the clan tag of team 2.

"players":{  
        "524050468":{  
            "name":"Disqualification",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "511471621":{  
            "name":"RedBaron_GR",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "519208358":{  
            "name":"pokefast",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "501168520":{  
            "name":"mad_2fast4u",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "517090729":{  
            "name":"Tcoglani",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "505935551":{  
            "name":"Ultimate_Spinach_",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "505118732":{  
            "name":"VADOR2",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "504449266":{  
            "name":"MirageIVS",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "507177678":{  
            "name":"wolrdofAlexis",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "501356239":{  
            "name":"drcop",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "516847314":{  
            "name":"MaXiMiLiAn_Gr",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "517675972":{  
            "name":"hell_fighter_gr",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "512160116":{  
            "name":"XmorrayX",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "507147831":{  
            "name":"xxx_Anti_xxx",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "500190361":{  
            "name":"laskas",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "503220794":{  
            "name":"Sniker71240",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "503172799":{  
            "name":"PuNniShZz",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "504438396":{  
            "name":"Oulamagos1980",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"GRBB",
            "team":2,
            "clanDBID":500063884,
            "platoonID":19752025
        },
        "505065980":{  
            "name":"Fermierdu67",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        },
        "501645375":{  
            "name":"marcus68510",
            "prebattleID":19752025,
            "igrType":0,
            "clanAbbrev":"2DBFL",
            "team":1,
            "clanDBID":500029422,
            "platoonID":19752025
        }
    }
  • 写回答

1条回答 默认 最新

  • doukun8670 2016-06-05 09:24
    关注

    First of all, you need to make sure that you are converting your JSON to associative array using json_decode, as such:

    json_decode($players, true)
    

    Otherwise the keys will be data members and you will suffer. Then, implement a function like this:

    function getClanAbbrevByTeam($players, $team) {
        foreach ($players as $player) {
            if ($player["team"] == $team) {
                return $player["clanAbbrev"];
            }
        }
        return false; //not found
    }
    

    The function searches for the first occurrence, assuming that a team might have a single clan abbreviation. You can call the function like this:

    $clanAbbrev = getClanAbbrevByTeam(json_decode($players, true));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功