2016-01-04 86 views
-1

我想通過我的數組多次迭代,因爲我想,所以我得到這樣的輸出:我該如何循環遍歷數組多次?

1 -> R 
2 -> G 
3 -> B 
4 -> B 
5 -> G 
6 -> R 
7 -> R 
8 -> G 
9 -> B 
10 -> B 
... 

Till 100 

到目前爲止,我開始使用此代碼:

$range = range(1,100); 
$color = array("Red", "Green", "Blue"); 
$clr = 0; 
for($i=0; $i<count($range); $i++){ 

    echo "<div style='color :".$color[$clr]."'>".$range[$i]. " " .$color[$clr]. "<br>"; 
    $clr++; 

    if($clr == 3){ 
     $clr = 0; 
    } 
} 
+0

你已經嘗試後是什麼? –

+0

目前還不清楚你在問什麼,你可以更具體嗎? –

+0

我想運行一個看起來相反,當$ color == 3 – Priya

回答

0
$range = range(1,100); 

$color = array("Red", "Green", "Blue"); 

$clr = 0; 
$check = 0; 

for($i=0; $i<count($range); $i++){ 


    echo "<div style='color :".$color[$clr]."'>".$range[$i]. " " .$color[$clr]. "<br>"; 

    if($check==0){ 
    $clr++; 
    } 
    if($clr==0){ 
    $check=0; 
    } 
    if($clr>2){ 
    $check++; 
    } 
    if($check==1){ 
    $clr--; 
    } 

} 

我做了它

0

這應該爲你工作:

首先添加反轉陣列到您的陣列,您可以使用array_reverse()。在此之後,你有一個這樣的數組:

Array(
    [0] => Red 
    [1] => Green 
    [2] => Blue 
    [3] => Blue 
    [4] => Green 
    [5] => Red 
) 

然後你就可以使用InfiniteIterator超過它多次迭代,只要你想,例如

<?php 

    $limit = 100; 
    $color = array("Red", "Green", "Blue"); 

    $arrayIt = new ArrayIterator(array_merge($color, array_reverse($color))); 
    $infiniteIt = new InfiniteIterator($arrayIt); 
    $it = new LimitIterator($infiniteIt, 0, $limit); 

    foreach($it as $v) 
     echo substr($v, 0, 1) . PHP_EOL; 

?> 

輸出:

R 
G 
B 
B 
G 
R 
//...