• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Lepszy sposób od if

VPS Starter Arubacloud
0 głosów
210 wizyt
pytanie zadane 29 sierpnia 2022 w PHP przez Doge Gaduła (3,420 p.)

Witam, czy jest lepszy sposób na zapisanie

                if($field_number <= 20) echo "1000$";
                else if($field_number <= 40) echo "2000$";
                else if($field_number <= 60) echo "3000$";
                else if($field_number <= 80) echo "4000$";
                else if($field_number <= 100) echo "5000$";
                else if($field_number <= 120) echo "6000$";
                else if($field_number <= 140) echo "7000$";
                else if($field_number <= 160) echo "8000$";
                else if($field_number <= 180) echo "9000$";
                else if($field_number <= 200) echo "10000$";
                else if($field_number <= 220) echo "11000$";
                else if($field_number <= 240) echo "12000$";
                else if($field_number <= 260) echo "13000$";
                else if($field_number <= 280) echo "14000$";
                else if($field_number <= 300) echo "15000$";
                else if($field_number <= 320) echo "16000$";
                else if($field_number <= 340) echo "17000$";
                else if($field_number <= 360) echo "18000$";
                else if($field_number <= 380) echo "19000$";
                else if($field_number <= 400) echo "20000$";

?

1 odpowiedź

+2 głosów
odpowiedź 29 sierpnia 2022 przez Arkadiusz Waluk Ekspert (288,330 p.)
wybrane 30 sierpnia 2022 przez Doge
 
Najlepsza
Tak na szybko patrząc, to zakładając, że numer zawsze rośnie o 20 i razem z nim kwota zawsze o 1000, można po prostu podzielić $field_number przez 20, zaokrąglić w górę i pomnożyć przez 1000. Powinno obsłużyć wszystkie przypadki oprócz 0, bo mnożenie zera da 0.
komentarz 30 sierpnia 2022 przez Doge Gaduła (3,420 p.)
A czy da się zrobić jakoś dla przypadku, gdzie nie rośnie o 1000 za każdym razem?
1
komentarz 30 sierpnia 2022 przez Arkadiusz Waluk Ekspert (288,330 p.)
Jeśli kwota rośnie np. zawsze o 2000 to możesz analogicznie pomnożyć razy 2000 zamiast 1000 ;) A zakładając, że i numery i kwoty mogłyby być zupełnie różne, ale działało by to na podobnej zasadzie (czyli że wszystko co mniejsze lub równe niż dany numer ma daną kwotę) pewnie próbowałbym to zebrać w tablicy numer => kwota, posortować i później w pętli szukać kwoty dla danej liczby.

Podobne pytania

0 głosów
1 odpowiedź 164 wizyt
pytanie zadane 1 lipca 2021 w PHP przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
0 odpowiedzi 48 wizyt
+4 głosów
2 odpowiedzi 783 wizyt

92,782 zapytań

141,712 odpowiedzi

320,592 komentarzy

62,114 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...