嵌套foreach PHP

时间:2016-09-10 21:41:00

标签: php json foreach

我有一个JSON文件。 (Steam API)。我想在我的网站上显示玩家库存。我使用这个网址:https://steamcommunity.com/id/majidsajadi/inventory/json/730/2

然后我用json_decode函数解码它。

现在有两个数组:rgInventory和rgDescription。我需要检查rgInventory中的类id和rgDescription中的classid是否匹配我是否使用了igDescription中的一些值。

所以我认为我应该使用2个foreach循环和if条件来检查类ID是否匹配。然后我回应出我需要的信息。

问题是我应该如何使用嵌套的foreach?

2 个答案:

答案 0 :(得分:0)

您可以使用两个嵌套的foreach循环:

假设$decoded_data是在最终结果上应用json_decode()函数后的解码数据,如下所示:$decoded_data = json_decode($your_json_data, true);

foreach($decoded_data['rgInventory'] as $arr1){
    foreach($decoded_data['rgDescriptions'] as $arr2){
        if($arr1['classid'] == $arr2['classid']){

            // both the classid matches
            // your code

        }
    }
}

答案 1 :(得分:0)

试试这段代码:

$steamData = json_decode(file_get_contents("https://steamcommunity.com/id/majidsajadi/inventory/json/730/2"), true);

if($steamData["success"] != 1){
    exit(); 
}

$match = array();

foreach($steamData["rgInventory"] as $v1){
    $match[$v1["classid"]]["match"] = false;
    $match[$v1["classid"]]["count"] = 0;
}

foreach($steamData["rgDescriptions"] as $v2){
    if(array_key_exists($v2["classid"],$match)){
        $match[$v2["classid"]]["match"] = true;
        $match[$v2["classid"]]["count"]++;
    }
}

print_r($match);