У меня есть коллекция данных API о футбольном турнире. Я хочу перебрать каждый элемент в table[]
Когда я регистрирую $team['table']
, проблем нет, но когда я пытаюсь глубже проникнуть в массивы, я получаю ошибки.
Код:
collect($standings['standings'])
->each(function ($team, $key) {
\Log::debug($team['table']);
});
Результат
[2018-11-03 23:08:12] local.DEBUG: array (
0 =>
array (
'position' => 1,
'team' =>
array (
'id' => 64,
'name' => 'Liverpool FC',
'crestUrl' => 'http://upload.wikimedia.org/wikipedia/de/0/0a/FC_Liverpool.svg',
),
'playedGames' => 11,
'won' => 8,
'draw' => 3,
'lost' => 0,
'points' => 27,
'goalsFor' => 21,
'goalsAgainst' => 5,
'goalDifference' => 16,
),
etc...
Результат при попытке перейти в массив team
collect($standings['standings'])
->each(function ($team, $key) {
\Log::debug($team['table']['team']['name']);
});
ошибка
local.ERROR: Undefined index: team {"exception":"[object] (ErrorException(code: 0):
Я зациклился на похожих данных API без каких-либо проблем, чего мне здесь не хватает?
Мое решение
У меня есть вложенный массив table[]
в моей коллекции, $team
не существует в этом массиве, поэтому мне нужно перебрать мой table[]
отдельно. Следующий код работает.
collect($standings['standings'])
->each(function ($standing, $key){
if ($standing['type'] == "TOTAL") {
collect($standing['table'])
->each(function ($value, $key) {
\Log::debug($value['team']['name']);
});
}
});
Есть ли лучшие способы сделать то же самое?