当计数器达到 5 时打破 Foreach | PHP

Break a Foreach when counter reaches 5 | PHP

我试图在 $counter 达到 5 时停止 foreach,但我做不到,我已经尝试更改“break;”将我的 try/catch 放在 if 中,但没有成功,我一直得到 103 场比赛(图片),我只想要 5

.........
    $leagues= $api->getLeagueEntries("RANKED_SOLO_5x5", "Gold", 'I');
    
     $counter = 0;
    
     foreach ($leagues as $t=> $op) {
    
    if (++$counter < 5) {
    
      
    
    }
                try {
                    $account_id = $api->getSummoner($op->summonerId);
                    $date = time();
                    $ab = $api->getMatchlistByAccount($account_id->accountId,  "420", null, null, $date, NULL, null, null, null);
    
    
                    echo "<pre>" ; var_dump($ab);   echo "<pre>" ;
                      break;
                } catch (Exception $e) { }
            }

放弃一次尝试可不是个好主意。您可以将 break 放在 else 分支中吗?

foreach (....) {
    if (++$counter < 5) {
        try  {..without break..}
        catch {}
    } else { break; }
}

尝试array_slice如果你想return只受限

echo "<pre>" ; var_dump(array_slice($ab, 0, 5));   echo "<pre>" ; 

$leagues 是一个数组,因此只需逐个元素循环遍历数组并在完成后停止:

$limit = min(5, count($leagues));  // just in case there's fewer than five.
for ($i = 0; $i<limit; $i++) {
    $account_id = $api->getSummoner($leagues[$i]->summonerId);
    $date = time();
    $ab = $api->getMatchlistByAccount($account_id->accountId,  "420", null, null, $date, NULL, null, null, null);
    echo "<pre>" ; var_dump($ab);   echo "<pre>" ;
}