计算JSON数组中的条目?

时间:2013-07-10 01:55:15

标签: php json loops data-extraction

如何计算我从JSON中删除的条目?

以下示例有6个条目,但正如您所看到的......如果添加了条目,我的代码将忽略它。我可以循环10次,如果它什么都没有,那就停下来,但我觉得这样做是不好的。

是否有任何简单的代码可以在以下JSON中获取6个“季节”?

MYPAGE.PHP

//Get the page
$str = file_get_contents('http://myjsonurl.here/');
$jsonarray = json_decode($str, true);

$season1 = $jsonarray['season_history'][0][0];
$season2 = $jsonarray['season_history'][1][0];
$season3 = $jsonarray['season_history'][2][0];
$season4 = $jsonarray['season_history'][3][0];
$season5 = $jsonarray['season_history'][4][0];
$season6 = $jsonarray['season_history'][5][0];
//the rest of the info here..

JSON

{
    "season_history": [
        ["2006/07", 2715, 12, 11, 0, 45, 0, 0, 0, 1, 0, 0, 26, 0, 91, 169],
        ["2007/08", 2989, 15, 11, 0, 56, 0, 0, 0, 3, 0, 0, 18, 0, 95, 177],
        ["2008/09", 2564, 9, 10, 0, 20, 0, 0, 0, 2, 0, 0, 14, 0, 95, 138],
        ["2009/10", 2094, 12, 6, 0, 13, 0, 0, 0, 1, 0, 0, 8, 0, 92, 130],
        ["2010/11", 2208, 21, 4, 8, 28, 0, 0, 0, 1, 0, 0, 26, 0, 92, 176],
        ["2011/12", 521, 7, 0, 2, 6, 0, 0, 0, 0, 0, 0, 5, 146, 89, 49]
    ]
}

2 个答案:

答案 0 :(得分:1)

foreach循环可能是您正在寻找的方法。

例如,此代码会输出JSON数据中每个季节的年份,无论有多少季节:

//Get the page
$str = file_get_contents('http://myjsonurl.here/');
$jsonarray = json_decode($str, true);

foreach($jsonarray['season_history'] as $season) {
    echo $season[0] . PHP_EOL;
}

或者,如果你只需要知道季节的数量,这将是一个解决方案:

//Get the page
$str = file_get_contents('http://myjsonurl.here/');
$jsonarray = json_decode($str, true);

$numberOfSeasons = count($jsonarray['season_history']);

如果您愿意,也可以将其与for循环结合使用:

for($i = 0; $i < $numberOfSeasons; $i++) {
    echo $jsonarray['season_history'][$i][0];
}

答案 1 :(得分:0)

没关系..我想出来了......这是我用过的代码。

//Get the page
$str = file_get_contents('http://myjsonurl.here/');
$jsonarray = json_decode($str, true);

//FOR EACH SEASON
foreach ($jsonarray['season_history'] as $var) 
{
for ($i = 0; $i <= 15; $i++)
    {
     echo $var[$i];
     //do more stuff here
    }

}