遍历集合会引发未定义的索引错误

时间:2018-11-03 23:14:12

标签: php laravel laravel-collection

我收集了有关足球排名的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']);
        });
    }
});

做同一件事的更好的方法吗?

0 个答案:

没有答案