如何检查JSON对象是否存在

时间:2015-12-10 10:17:32

标签: php adobe-analytics

我发了一篇关于Adobe Analytics API代码的帖子。我正在使用代码来检索第一个和第二个元素(维度),这个元素被称为'细分'。数量取决于我们对此元素的数据。

我正在使用i = 10的循环,但我想要把所有东西都拿走。哪种方法最好?

我正在使用此代码:

foreach ($json->report->data as $element) 
{
        // putting an excessive number for i
        for ($i=0;$i<100;$i++)
        {
            // checking if the object exists
            if (isset($element->breakdown[0]->breakdown[$i]->name)) 
            {
                echo $element->breakdown[0]->breakdown[$i]->name;

                // putting the data in a list I created before
                array_push($list, array(''.$element->year.'-'.$element->month.'-'.$element->day, $element->breakdown[0]->name, $element->breakdown[0]->breakdown[$i]->name, $element->breakdown[0]->breakdown[$i]->counts[0], $element->breakdown[0]->breakdown[$i]->counts[1]));
            }
            else
            {
                // Break the loop. All the objects are in the row. So, if there is not any for i=45 then there won't be any for i>45
                continue;
            }

        }
}

我试图获取所有对象。我正在检查对象是否存在。如果他们不这样做,我希望这个循环停止(第二次循环)。

2 个答案:

答案 0 :(得分:3)

使用break代替continue退出循环

break停止当前循环continue进入循环的下一次迭代。

要退出两个循环,请使用break 2;

答案 1 :(得分:1)

你可以打破循环。 有关更多信息:http://php.net/manual/en/control-structures.break.php

foreach ($json->report->data as $element) 
{
    // putting an excessive number for i
    for ($i=0;$i<100;$i++)
    {
        // checking if the object exists
        if (isset($element->breakdown[0]->breakdown[$i]->name)) 
        {
            echo $element->breakdown[0]->breakdown[$i]->name;

            // putting the data in a list I created before
            array_push($list, array(''.$element->year.'-'.$element->month.'-'.$element->day, $element->breakdown[0]->name, $element->breakdown[0]->breakdown[$i]->name, $element->breakdown[0]->breakdown[$i]->counts[0], $element->breakdown[0]->breakdown[$i]->counts[1]));
        }
        else
        {
            // Break the loop. 
            break;
        }

    }

}