微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

复杂的Json处理-PHP

我正在使用此JSONhttp://steamcommunity.com/id/mitch8910/inventory/json/730/2/

我正在对“ rgDescriptions”数据进行排序:

$data = file_get_contents('http://steamcommunity.com/id/mitch8910/inventory/json/730/2/');
$json = json_decode($data);

foreach ($json->rgDescriptions as $mydata)
{
   //checking and adding data to a database
}

“ rgDescriptions”中的每个部分都包含有关某个项目的大量信息.例如,对于每个项目,我都会检查一些内容

if($mydata->Tradable == 1){ //do somthing }

我现在也想使用JSON中的“ rgInventory”,并将信息与“ rgDescriptions”中的信息一起保存在数据库中.因为我正在检查“ rgDescriptions”数据,所以并非所有项目都保存到数据库中,所以我不能只浏览“ rgInventory”中的所有项目并保存它们.

我想做类似的事情:

    foreach ($json->rgDescriptions as $mydata)
    {
        if($mydata->Tradable == 1){ 
           foreach ($json->rgInventory as $mydata2){
              //I want to get the elements from rgInventory that are 
              // in the same place as the corresponding 
              //elements in rgDescriptions
              $id = $mydata2[$mydata]->id;
           }
        }
    }

编辑:所以我的问题是:当我遍历$mydata时,对于$mydata中的某些元素,我也想从$mydata2中获取相应的元素.因此,如果我在$mydata中位于第5个元素,并且想使用$mydata2,那么我也希望从$mydata2中获得第5个元素.

解决方法:

$rows = array();
$data = file_get_contents('http://steamcommunity.com/id/mitch8910/inventory/json/730/2/');
$data = json_decode($data);
$rgInventory = $data->rgInventory;
$rgDescriptions = $data->rgDescriptions;
foreach ($rgDescriptions as $rgDescData) {
    if ($rgDescData->Tradable == 1) {
        $classId = $rgDescData->classid;
        foreach ($rgInventory as $rgInvData) {
            if ($rgInvData->classid === $classId) {
                $rows[] = array(
                    'classIdFromrgDescriptions' => $classId,
                    'dataFromrgInventory' => $rgInvData
                );
                break;
            }
        }
    }
}
var_dump($rows);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐