Как проверить, существует ли объект JSON

Я сделал сообщение о коде для 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;
}

}
}

где я пытаюсь получить все объекты. Я проверяю, существуют ли объекты. Если они этого не делают, я хочу остановить этот цикл (второй цикл).

0

Решение

Вы можете разорвать петлю с перерывом.
для дополнительной информации: 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;
}

}

}

1

Другие решения

использование break вместо continue выйти из цикла

break останавливает токовую петлю continue переходит к следующей итерации цикла.

Чтобы выйти из обеих петель используйте break 2;

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector