Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сделать проверку на числа 2 через 2 и 3 через 3

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Telnet
Отправлено: 29 Июня, 2019 - 12:38:34
Post Id


Частый гость


Покинул форум
Сообщений всего: 223
Дата рег-ции: Май 2011  


Помог: 1 раз(а)




Всем привет.
Нужно в зависимости от того какой сейчас этап $client->stage
определять номер периода этого этапа, периодов всего 2, 1 и 2. Периоды постоянно чередуются т.е сначала 2 потом 1, потом опять 2 , потом 1 и т.д.
Первый этап период меняется каждый день
Второй этап период меняется каждые 2 дня, т.е первые 2 дня период 2 потом следующие 2 период 1
Третий период меняется каждые 3 дня.

Нужно это как то автоматизировать что бы убрать четкие условия типа
$arr = [1,2,5,6,9,10,13,14,17,18,21,22,25,26,29,30];
а вместо это типа что типа $d % 2 == 1
что б не вводить руками все эти условия
PHP:
скопировать код в буфер обмена
  1.  
  2. function getPeriod($stage, $d){
  3.         if($stage == 1){
  4.             if($d % 2 == 1 ){
  5.                 return 2;
  6.             }
  7.             if($d % 2 == 0 ){
  8.                 return 1;
  9.             }
  10.         }
  11.         if($stage == 2){
  12.             $arr = [1,2,5,6,9,10,13,14,17,18,21,22,25,26,29,30];
  13.             //получаем номер текущего периода
  14.             if(in_array($d, $arr)){
  15.                 return 2;
  16.             }
  17.             $arr = [3,4,7,8,11,12,15,16,19,20,23,24,27,28,31,32];  
  18.             if(in_array($d, $arr)){
  19.                 return 1;
  20.             }
  21.         }
  22.         if($stage == 3){
  23.             //получаем номер текущего периода
  24.             $arr = [1,2,3,7,8,9,13,14,15,19,20,21,25,26,27,31,32,33];
  25.             if(in_array($d, $arr)){
  26.                 return 2;
  27.             }  
  28.             $arr = [4,5,6,10,11,12,16,17,18,22,23,24,28,29,30];
  29.             if(in_array($d, $arr)){
  30.                 return 1;
  31.             }
  32.         }
  33.  
  34. }
  35.  
  36. $stage = 3;
  37. $d = 3;
  38. echo getPeriod($stage, $d);[
  39.  

(Отредактировано автором: 29 Июня, 2019 - 18:51:40)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB