如何检查 JSON 对象是否存在

How to check if JSON object exists

我制作了一个关于 Adob​​e Analytics API 代码的 post。我正在使用代码来检索称为 'breakdown' 的第一个和第二个元素(维度)。数量取决于我们拥有的该元素的数据。

我正在使用 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;
            }

        }
}

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

您可以使用 break 来中断循环。 了解更多信息: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;
        }

    }

}

使用 break 而不是 continue 退出循环

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

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