2011-05-10 110 views
2

我正在嘗試創建一個PHP foreach語句,爲前5次迭代輸出不同的代碼,然後爲其餘的輸出做不同的輸出。通過迭代在一個foreach中執行更改代碼

我發現這個代碼片斷,它在給定的限制內斷開,但我怎麼能從另一個foreach循環的最後一次迭代繼續?無論如何,這可能不是最好的方法。

$i = 0; 
foreach ($arr as $k => $v) { 
    /* Do stuff */ 
    if (++$i == 2) break; 
} 

這可能嗎?我會怎麼做呢?

謝謝! Zeem

回答

3

您可以使用array_slice此:

foreach (array_slice($arr, 0, 5, true) as $k => $v) { 
    /* Do stuff 1-5 */ 
} 
foreach (array_slice($arr, 5, null, true) as $k => $v) { 
    /* Do stuff 6-end */ 
} 
+0

謝謝先生!像魅力一樣工作 – zeemy23 2011-05-10 18:03:20

0

您是否在尋找類似...的東西?

$i = 0; 
foreach ($var as $k => $v) { 
    if ($i < 5) { 
     // do something here for the first five iterations 
    } 
    else { 
     // do something else here for further iterations 
    } 
    $i++; 
} 
0
$i = 0; 
foreach ($arr as $k => $v) { 
    if ($i < 5) { 
     /* do stuff */ 
    } else { 
     /* other stuff */ 
    } 
    $i++; 
} 
0

我會假設你的數組是不相關的,和的thereforce $ k將是數字索引。如果不是這種情況,你需要你的$ i。

foreach ($arr as $k => $v) { 
    if ($k < 5) { 
     Do stuff 
    } else { 
     Do other stuff 
    } 
}