我想在php中创建一个循环,它在达到变量中指定的特定数字后从1开始。
但是在达到5之后,i ++我希望这个循环从下面给出的1个东西重新开始。
1,2,3,4,5,1,2,3,4,5
请帮助!!
答案 0 :(得分:1)
您可能希望使用模运算符%
。这将导致数字到"循环"喜欢你想要的东西。
for ($i = 0; $i < 10; $i++) {
echo ($i % 5) + 1;
}
以上将打印出数字1到5两次。
答案 1 :(得分:1)
尝试 -
$count = 0;
for ($i = 1 ; $i <= 10; $i++) {
$count++;
echo $count;
if ($count == 5) {
$count = 0;
echo "</br>";
}
}
答案 2 :(得分:0)
试试这个:
$i=1;
while($i<=10)
{
echo $i;
$i++;
if($i>5)
{
$i=1;
echo "</br>";
}
}
答案 3 :(得分:0)
<?php
$loop=1;
for($i=1;$i<=10;$i++)
{
echo $loop;
if($i==5)
{
$loop=0;
echo "</br>";
}
$loop++;
}
?>
<强>输出:强> 12345 12345
这可以在不使用循环的情况下实现,请找到以下2个有用的功能
<强>首先强>
function createDateRangeArray($strDateFrom,$strDateTo)
{
// takes two dates formatted as YYYY-MM-DD and creates an
// inclusive array of the dates between the from and to dates.
// could test validity of dates here but I'm already doing
// that in the main script
$aryRange=array();
$iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2), substr($strDateFrom,8,2),substr($strDateFrom,0,4));
$iDateTo=mktime(1,0,0,substr($strDateTo,5,2), substr($strDateTo,8,2),substr($strDateTo,0,4));
if ($iDateTo>=$iDateFrom)
{
array_push($aryRange,date('Y-m-d',$iDateFrom)); // first entry
while ($iDateFrom<$iDateTo)
{
$iDateFrom+=86400; // add 24 hours
array_push($aryRange,date('Y-m-d',$iDateFrom));
}
}
return $aryRange;
}
<强>第二强>
$st_date = '2012-07-20';
$ed_date = '2012-07-27';
$dates = range(strtotime($st_date), strtotime($ed_date),86400);
$range_of_dates = array_map("toDate", $dates);
print_r($range_of_dates);
function toDate($x){return date('Y-m-d', $x);}
这两个函数将返回您将通过的两个日期之间的日期,然后您可以循环输出数组以执行操作
答案 4 :(得分:0)
您可以尝试:
$count = 10;
for ($i = 0; $i < $count; $i++)
{
if($i != ($count-1)){$coma = ',';}else{$coma = '';}
$value = ($i % 5)+1;
$output = $value.$coma;
echo $output;
}
输出: - 1,2,3,4,5,1,2,3,4,5