迭代到多维数组

时间:2019-10-20 22:29:47

标签: php laravel multidimensional-array

我正在尝试遍历此数组以获取所有联赛值(league_idnametype等)

array:1 [▼
"api" => array:2 [▼
"results" => 970
"leagues" => array:970 [▼
  0 => array:13 [▼
    "league_id" => 1
    "name" => "World Cup"
    "type" => "Cup"
    "country" => "World"
    "country_code" => null
    "season" => 2018
    "season_start" => "2018-06-14"
    "season_end" => "2018-07-15"
    "logo" => "https://media.api-football.com/leagues/1.png"
    "flag" => null
    "standings" => 1
    "is_current" => 1
  ]
  1 => array:13 [▼
    "league_id" => 2
    "name" => "Premier League"
    "type" => "League"
    "country" => "England"
    "country_code" => "GB"
    "season" => 2018
    "season_start" => "2018-08-10"
    "season_end" => "2019-05-12"
    "logo" => "https://media.api-football.com/leagues/2.png"
    "flag" => "https://media.api-football.com/flags/gb.svg"
    "standings" => 1
    "is_current" => 0
  ]
  .......

但直到现在,使用以下代码:

$request = json_decode($request->getBody()->getContents(), true);
foreach ($request as $array=>$val) {
   foreach ($val['leagues'] as $id) {
        dd($id);
   }
}

我唯一能得到的就是只有第一个数组,而不是其余的:

array:13 [▼
"league_id" => 1
"name" => "World Cup"
"type" => "Cup"
"country" => "World"
"country_code" => null
"season" => 2018
"season_start" => "2018-06-14"
"season_end" => "2018-07-15"
"logo" => "https://media.api-football.com/leagues/1.png"
"flag" => null
"standings" => 1
"is_current" => 1
]

有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

您正在调用的dd()函数在第一次迭代中杀死了脚本的执行。

来自Laravel Docs

  

dd函数将转储给定的变量并结束脚本的执行。

     

如果不想停止脚本的执行,请转储功能。

只需像这样遍历它:

$request = json_decode($request->getBody()->getContents(), true);
foreach ($request['leagues'] as $id=>$league) {
  print_r(compact('id', 'league')); // To see the id and value array
}

希望这会有所帮助,