цикл foreach возвращает несколько копий одной и той же записи

Я пытаюсь перечислить каждую запись «имя» из файла JSON. Однако я продолжаю получать одну и ту же запись, скопированную несколько раз для каждого родителя. Например, «Имя» возвращает DennisDennisDennisDennis. Я не могу удалить [3] (или любое число внутри него), потому что тогда моя страница станет пустой. Как мне закодировать его, чтобы в следующий раз он перечислял каждое из имен в json? Это мой код:

$opts = array(
'http'=>array(
'header'=>"X-AUTH-TOKEN: 41e509ad68f0......")
);

$context = stream_context_create($opts);

$url    = 'workingurlhere';
$data   = file_get_contents($url, true, $context);
$result = json_decode($data);

foreach ($result as $all){
echo $result -> data[3] -> Name;
}?>

-2

Решение

Вам просто нужно ссылаться на $ all, а не на $ result.

foreach ($result as $all){
echo $all -> data[3] -> Name;
}
1

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

Ваша проблема в том, что вы всегда ссылаетесь на исходный массив $result, Таким образом, вы всегда получите один и тот же результат.

foreach ($result as $all){
echo $result->data[3]->Name; // Always printing the same index.
}

Я бы предположил, что может сработать следующее, но не видя, какие данные находятся в $result Я не могу быть уверен на 100%.

foreach ($result->data as $values){
echo $values->Name;
}

Если это не сработает, возможно, стоит отредактировать исходный вопрос с помощью $result содержит.

1

Поскольку я не знаю структуру JSON, это половина догадки и половина инстинкта.

foreach ($result as $all){
echo $all -> data[3] -> Name;
}

Или, если вам нужно включить data сам:

foreach ($result->data as $entry){
echo $entry -> Name;
}
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector