我想多次迭代我的数组,所以我得到这样的输出:
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)
$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;
?>