Как увеличить число дней после каждых 5 или некоторого определенного числа, используя php while loop - PullRequest
0 голосов
/ 29 апреля 2018
$x = 1;
$z = 1;
while($row = $qry->fetch())
{
    $var = 5; //random
    $total = 5; //Dynamic
    if($var>=$total)
    {
        $fx = $x+1;
        $day = "day ".$x; //day1
    }
    elseif($var>=$z)
    {
        $y = $x+1;
        $day = "$var>=$z---day "."$y";//Day Increment
        $z++;
        if($z>$var)
        {
            $z=1;
        }
    }
}

Выше указанного кода как

day 1
day 1
day 1
day 1
day 1
5>=1---day 2
5>=2---day 2
5>=3---day 2
5>=4---day 2
5>=5---day 2
5>=1---day 2
5>=2---day 2
5>=3---day 2
5>=4---day 2
5>=5---day 2

То, что я хочу, это после того, как каждый пятый счетный день должен быть увеличен до 1. Как это сделать. Я думаю, что здесь не хватает логики. Пожалуйста, помогите мне.

Результат должен быть

day 1
day 1
day 1
day 1
day 1
5>=1---day 2 //Note
5>=2---day 2
5>=3---day 2
5>=4---day 2
5>=5---day 2
5>=1---day 3
5>=2---day 3
5>=3---day 3
5>=4---day 3
5>=5---day 3

Примечание. Количество дней должно увеличиваться в цикле

Заранее спасибо

1 Ответ

0 голосов
/ 29 апреля 2018

Если я хорошо понимаю вашу проблему, вы хотите выполнить цикл, и каждая $var итерация увеличивает число на 1.

Для этого вы можете использовать оператор % (по модулю), являющийся остатком от евклидова деления.

$var = 5; // number of iterations before increasing $day
$day = 1; // current day
$i = 0; // iterator
while( ... ){
   //...
   i++;
   if( i % $var ==  $var-1 ) $day++;
}

или в качестве эквивалента вы также можете сделать

$var = 5; // number of iterations before increasing $day
$day = 0; // current day
$i = 0; // iterator
while( ... ){
   if( i % $var == 0 ) $day++;
   //...
   i++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...