Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie warunku w jednej lini przy pomocy petli
rad11
post
Post #1





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Mając taka talice:

  1. array(5) {
  2. [0]=>
  3. array(3) {
  4. ["where"]=>
  5. string(7) "a_price"
  6. ["condition"]=>
  7. string(2) ">="
  8. ["match"]=>
  9. int(123213)
  10. }
  11. [1]=>
  12. array(3) {
  13. ["where"]=>
  14. string(7) "a_price"
  15. ["condition"]=>
  16. string(2) "<="
  17. ["match"]=>
  18. int(123)
  19. }
  20. [2]=>
  21. array(3) {
  22. ["where"]=>
  23. string(7) "a_price"
  24. ["condition"]=>
  25. string(1) ">"
  26. ["match"]=>
  27. int(5466)
  28. }
  29. [3]=>
  30. array(3) {
  31. ["where"]=>
  32. string(7) "a_price"
  33. ["condition"]=>
  34. string(1) "="
  35. ["match"]=>
  36. int(87697)
  37. }
  38. [4]=>
  39. array(3) {
  40. ["where"]=>
  41. string(7) "a_price"
  42. ["condition"]=>
  43. string(1) "<"
  44. ["match"]=>
  45. int(14134)
  46. }
  47. }
  48.  


Czy jest mozliwe utworzenie przy uzyciu pętli z tej tablicy warunku w jednej linit tzn:
  1. if(a_price < 14134 && a_price == 87697 && a_price > 5466 && a_price <= 123 && a_price >= 123213){
  2.  
  3. }


Ten post edytował rad11 4.12.2015, 08:07:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Warunek jest dobry. Ale będzie spełniony tylko dla jednego z elementów tablicy, jeżeli chcesz dla wszystkich to:
a) musisz znać ilość elementów i samemu stworzyć coś w stylu:

  1. if($arr[4][a_price] < 14134 && $arr[3][a_price] == 87697 && $arr[2][a_price] > 5466 && $arr[1][a_price]<= 123 && $arr[0][a_price]>= 123213){


lub stworzyć sobie funkcję zawierającą warunek:

  1. function a_price_tomore ($a_price) {
  2. if ($a_price > 0) return true;
  3. }
  4. function a_price_toless ($a_price) {
  5. if ($a_price < 0) return true;
  6. }
  7. function a_price_equal ($a_price) {
  8. if ($a_price == 0) return true;
  9. }
  10.  
  11. //potem
  12. $warunek = false;
  13. foreach ($arr as $k=>$key) {
  14. if ($key['condidion'] == '>') a_price_tomore ($key['a_price']) $warunek = true;
  15. elseif ($key['condidion'] == '<') a_price_toless ($key['a_price']) $warunek = true;
  16. elseif ($key['condidion'] == '=') a_price_equal ($key['a_price']) $warunek = true;
  17. else $warunek = false;
  18. }
  19. if ($warunek === true ) echo "Warunek spełniony";



Nie wiem czy czegoś nie spieprzyłem, ale m/w w podobny sposób, acz ja osobiście zrobiłbym jeszcze inaczej.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 00:09