Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Warunek logiczny dla IF
--cube22--
post
Post #1





Goście







Witam!
Jak prawidłowo zapisać IF-a jeżeli chcę, aby warunek był spełniony gdy jedna i ta sama zmienna będzie równa 1 lub 2 lub 5, np.:
  1. if ($zmienna == 1 || $zmienna == 2 || $zmienna == 5) {
  2. echo 'dobrze';
  3. } else {
  4. echo 'źle';
  5. }


Czy jest prostsza forma zapisu gdybym chciał spełnić warunek dla większej liczby wartości?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Piogola
post
Post #2





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


Tak. Użyj in_array


--------------------
Google Manual
Go to the top of the page
+Quote Post
kadlub
post
Post #3





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


dla ilu wartości chcesz to zrobić?
jak dla np 40 to ja bym to zrobił z array i for

Ten post edytował kadlub 4.03.2011, 12:33:43
Go to the top of the page
+Quote Post
sadistic_son
post
Post #4





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Najprościej tak jak podpowiedział Piogola:
  1. $wartosci_ok=array( []=>1 , []=>2 , []=>5 );
  2.  
  3. if(in_array($zmienna,$wartosci_ok)){
  4. echo 'dobrze';
  5. }else{
  6. echo 'zle';
  7. }


Ten post edytował sadistic_son 4.03.2011, 13:00:11


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$wartosci_ok=array( []=>1 , []=>2 , []=>5 );
A po jakiemu to?Ni to chiński ni php...


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

"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
kadlub
post
Post #6





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  1. $zmienna=2;
  2. $kryteria=array(2,3,6,8,4,9,12,4,65,23,76,34);
  3. $ile=count($kryteria);
  4. for($i=0;$i<$ile;$i++){
  5. if ($zmienna == $kryteria[$i]) {
  6. echo 'spełnia kryteria';
  7. $a++;
  8. }
  9.  
  10. }
  11. if($a<1){
  12. echo"nie spelnia kryteriów";
  13. }
  14.  

ja to zrobiłem tak
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




kadlub ale lubisz sobie życie utrudniac i banalny kod komplikować... Podane już zostało: in_array() - nie brnij już dalej.


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

"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
--cube22--
post
Post #8





Goście







Dzięki!
Go to the top of the page
+Quote Post
sadistic_son
post
Post #9





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Cytat(nospor @ 4.03.2011, 13:01:26 ) *
A po jakiemu to?Ni to chiński ni php...
Bo to było w swahili smile.gif

  1. $wartosci_ok=array(1, 2, 5, 78, 908);



--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
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 Aktualny czas: 21.08.2025 - 11:05