Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Warunek if dla przedziałów
bahh
post 10.02.2013, 19:40:27
Post #1





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Witam,

mam pewien problem, otóż chcę by zmienna $a jeśli mieściłaby się w danym przedziale to wtedy przyjmowałaby jakieś $b tzn.:
dla $a mieszczącego się w <1,5> to $b=1, gdy $a w <6,10> to $b=2 i tak w kółko.

Wiem, że można to rozwiązać czymś takim:
  1. if (1<=$a && $a>=5)
  2. $b=1;
  3. elseif (6<=$a && $a>=10)
  4. $b=2;
  5. elseif (11<=$a && $a>=15)
  6. $b=3;
  7. elseif (16<=$a && $a>=20)
  8. $b=4;
  9. elseif (21<=$a && $a>=25)
  10. $b=5;

i tak w nieskończoność... ale to ostatecznie nie załatwia problemu. Macie jakieś pomysły jak to zrobić?

myślałem o czymś takim, jest ok?

  1. $s1=1;
  2. $s2=5;
  3. $b=1;
  4. while ($s1>=$a && $a>=$s2) {
  5. $s1+5;
  6. $s2+5;
  7. $b++;
  8. }


Ten post edytował bahh 10.02.2013, 19:45:28
Go to the top of the page
+Quote Post
nospor
post 10.02.2013, 19:45:07
Post #2





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Podpowiedź: dziel liczbę modulo 5 - to da ci $b


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
sabat24
post 10.02.2013, 19:54:01
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


A
  1. $b = ceil(($a-1) / 5);

nie załatwi sprawy?
Go to the top of the page
+Quote Post
bahh
post 10.02.2013, 22:04:04
Post #4





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


  1. $b = ceil(($a-1) / 5);


wtedy dla $a=1 $b=0, $a=3 $b=0 i tak dalej, to nie daje tego samego co wyżej
Go to the top of the page
+Quote Post
sabat24
post 10.02.2013, 22:14:58
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Odjemnik zamień na 0.99 i będzie dawało to co trzeba.
Go to the top of the page
+Quote Post
nospor
post 11.02.2013, 07:51:44
Post #6





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Mialem na mysli zwykle dzielenie przez 5 i zaokrąglanie w dół przy pomocy floor() a następnie do wyniku dodanie 1 i masz swoje $b.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 06:13