我收集了有关足球排名的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']);
});
}
});
做同一件事的更好的方法吗?