Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数字之间的循环(范围)_Php_Algorithm_Numbers_Cycle - Fatal编程技术网

Php 数字之间的循环(范围)

Php 数字之间的循环(范围),php,algorithm,numbers,cycle,Php,Algorithm,Numbers,Cycle,我有一个数字数组,例如(日历日): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 19 20 21 22 24 25 26 27 29 30 31 我想在两个数字之后每三个数字突出显示一次 因此它应该是这样的:12345678910111213141517181920212226272829 3031 或者它可以是二乘二,或者二乘四,或者任何一对 我需要一些算法来实现这一点,请帮助。您可以在for循环中使用$I上的一个简单的mod来实现这一点: for ($i =

我有一个数字数组,例如(日历日): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 19 20 21 22 24 25 26 27 29 30 31

我想在两个数字之后每三个数字突出显示一次

因此它应该是这样的:12345678910111213141517181920212226272829 3031

或者它可以是二乘二,或者二乘四,或者任何一对


我需要一些算法来实现这一点,请帮助。

您可以在for循环中使用
$I
上的一个简单的
mod
来实现这一点:

for ($i = 0; $i < 31; $i++) {
    if ($i%5 == 1 || $i%5 == 2 || $i%5 == 3 ) {
        echo "<strong>" . $i . "</strong>";
    } else {
        echo $i;
    }
}
($i=0;$i<31;$i++)的
{
如果($i%5==1 | |$i%5==2 | |$i%5==3){
回声“”$i.”;
}否则{
echo$i;
}
}
它需要稍微调整以输出您需要的输出方式,但一般逻辑应该可以工作


在这里查看工作示例

您可以使用模
%
。如果模小于或等于2(0,1,2),突出显示它

$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31);

    foreach( $arr as $key => $value ) {
        if ( ( $key % 5 ) <= 2 ) echo "<b>" . $value  . "</b>"; 
        else echo $value; 

        echo "<br />";
    }
$arr=数组(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
foreach($arr作为$key=>$value){
if(($key%5)这里有一个方法使用and来构建字符串

这会减少循环次数。循环次数取决于“设置”。
在本例中,您提到它会进行七次循环,而当您循环数组的每个值时,它会进行31次循环

$days = range(1,31);
$i = 3; // consecutive bolded days
$j = 2; // consecutive not bolded days between the bolded
$str ="";
for($k=0;$k<end($days);){
    $str .= "<b>" . implode("</b> <b>", array_slice($days, $k,$i)) ."</b> " . implode(" ", array_slice($days, $k+$i, $j)). " ";
    $k=$k+$i+$j;
}
echo $str;
$days=范围(1,31);
$i=3;//连续加粗天数
$j=2;//加粗日期之间连续的非加粗日期
$str=”“;

对于($k=0;$kC),您可以分享您迄今为止尝试过的内容吗?您是否在
$i
上尝试过带有mod的for循环?您迄今为止尝试过什么?我的意思是,这是一个“初学者问题”对我来说,没有任何你尝试过的东西,我们无能为力。是的,我尝试过在
$I
上使用mod循环,但找不到正确的条件。看看这个