2009-11-06 31 views
0

對於你們中的一些人來說,這可能很簡單,但是我是一個新手編碼器。我如何使這個foreach循環在i循環後終止。該號碼在循環通過另一個條件時不斷重置。有多個a。大約100個,所以我永遠不會達到250.如何在foreach循環中存儲一個整數

$i = 0; 

foreach ($a as $b) { 
    //do function 

    i++; 

    if (i == 250) 
    { 
    exit; 
    } 
} 
+0

爲什麼它需要執行250次?在我看來,foreach的目的是消除對櫃檯等的需求。 – Corin 2009-11-06 20:30:50

+0

......據我所知,應該工作。 – Amber 2009-11-06 20:31:29

+0

嵌入循環中的函數需要在達到限制時終止整個應用程序。 – user201349 2009-11-06 20:42:04

回答

6

你在兩個「我」上缺少「$」符號。它應該是:

$i = 0; 

foreach ($a as $b) { 
    //do function 

    $i++; 

    if ($i == 250) 
    { 
    exit; 
    } 
} 
+0

也是增量。很好,我自己也錯過了。用於C. – Joost 2009-11-06 20:33:53

3

$我不應該重置,因爲它被聲明在for循環之外。然而,在該片段中的語法錯誤:

$i = 0; 

foreach($a as $b) 
{ 
    // do something with $b 
    if(++$i == 250) exit; 
} 
+0

da5ids的評論是一樣的:您剛剛忘記在forloop中的'i'變量前添加'$'符號,所以您實際上並未更改'$ i'的值。 .. – 2009-11-06 20:34:02

2

你錯過了你的變量i在循環中前美元符號($):

$i = 0; 
foreach ($a as $b) 
{ 
    //do function 
    $i++;  
    if ($i == 250) 
    { 
     exit; // or break; 
    } 
} 
1

如果$僅包含數組如你所說的,大約有100個元素,那麼就不需要檢查$ i是250.在代碼遍歷$ a中的所有元素之後,那麼foreach循環將退出,並且您將繼續執行下一個代碼。

foreach($a as $b) { 
    echo $b . '<br />'; 
} 

echo 'Loop has finished'; 

如果您正在尋找保持計數,你應該改用:

for ($i = 0; $i < count($a); $i++) { 
    echo 'Element ' . $i . ' is ' . $a[$i] . '<br />'; 
    if ($i == 250) { 
    break; // this will exit the loop 
    } 
} 

echo 'Loop has finished';