我怎么能循环遍历数组我想要的次数?

时间:2016-01-04 07:13:51

标签: php arrays

我想多次迭代我的数组,所以我得到这样的输出:

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;   
    }   
}

2 个答案:

答案 0 :(得分: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--;
  }

}

我做到了

答案 1 :(得分:0)

这应该适合你:

首先将反转数组添加到数组中,然后使用array_reverse()。在此之后你有一个像这样的数组:

[2,4]

然后你可以使用InfiniteIterator根据需要多次迭代它,例如。

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

输出:

<?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;

?>