2013-11-20 49 views
-1

一個無限循環,我需要得到一個項目從數組中的每個5時i循環上的條款如何使陣列

我的數組

$myArray = array(1 => 'element 1', 2 => 'element 2', 3 => 'element 3'); 

我的for循環

for ($i=1; $i<=50; $i++) { 

    echo "echo this each time "; 

    if ($i%5 === 0) $myitem = next($myArray); 
    echo "echo my array item every 5 times " .$myitem; 
    // but starting again from first if i reach the end of array 

} 

我需要得到數組的第一個項目,如果我到達終點

+0

你需要循環...你爲什麼要用這麼複雜的方法去做?你究竟想要什麼?你想每個元素回顯5次?或者當你到達最後一個元素時你想要去第一個元素。 –

+0

我在第一個FOR循環中顯示一些圖片,每5張圖片我需要顯示1條橫幅,但是橫幅比圖片少很多,所以在到達最後的橫幅後,我需要從第一個重新開始 – al404IT

回答

1

我不知道爲什麼u需要這一點,但這樣的事情應該工作:

$fancyvarname = 0; 

for ($i=1; $i<=50; $i++) { 

    echo "echo this each time "; 

    if ($i%5 == 0){ 
     $myitem = $myArray[$fancyvarname % count($myArray)]; 
     $fancyvarname++; 
     echo "echo my array item every 5 times " .$myitem; 
    } 

} 

編輯:你注意到===而不是==

+0

是的,我認爲它會起作用。只要我測試我回來,我在我的第一篇文章中添加評論,解釋我需要它。 – al404IT

0

你可以嘗試使用:

if ($i % sizeof($myArray) === 0) reset($myArray); 
0
for $i=0; $i<50; $i++) { 
    if ($i%5===0) echo "...5 times ".$myArray[$i%count($myArray)]; 
} 

當然也可以採取數()的循環之外節省一點的CPU時間