2016-01-04 4 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--; 
    } 

} 

I сделал это

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 
//... 
Смежные вопросы