![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.01.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Pewnego wieczora stwierdzilem ze przydalaby się na mojej stronie ankieta, wiec ja napisalem. Pomyslalem ze przedstawie wyniki w formie slownej by bylo oryginalniej (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif) . No i tu wyszedl na wieszch pewien ciekawy problem. Jak sprawić by slowa dobierane do liczby glosow byly poprawnie odmienione? Na szczescie mamy tutaj zachowana pewna prawidlowosc ktora powtarza sie zawsze. Mianowicie wszystkie liczby konczace sie cyfra 1, 5, 6, 7, 8, 9 i 0 maja odmiane ...głosów (np. 21 głosów), wszystkie liczby konczace sie cyfra 2, 3 i 4 maja odmniane ...głosy (np. 34 głosy). Jedynym wyjatkiem od tej reguly w naszej ankiecie bylaby cyfra 1 ktora ma odmiane ...głos (1 głos).
Teraz moje pytanie: "Jaki skrypt napisać (przy uzyciu jakich funkcji) by rozpoznawal ostatnia cyfre w liczbie? Macie jakies pomysly?". |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 11.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Skrypcik...
[php:1:bc0700374d] <? //na początek wrzuć jakąś liczbę if(substr($liczba,-2)==1) // tu jest substr($liczba,-2), bo może być 1 lub 11 { echo("głos"); } elseif(substr($liczba,-1)==2 || substr($liczba,-1)==3 || substr($liczba,-1)==4) { echo("głosy"); } elseif((substr($liczba,-2)>5 && substr($liczba,-2)<21) || substr($liczba,-1)==1 || substr($liczba,-1)==5 || substr($liczba,-1)==6 || substr($liczba,-1)==7 || substr($liczba,-1)==8 || substr($liczba,-1)==9) //od liczby 5 do 21 jest "głosów", a reszta już normalnie { echo("głosów"); } ?>[/php:1:bc0700374d] Nie mam pewności czy działa, bo nie mam w tej chwili gdzie sprawdzić. Jak działa, to daj znać. Jak nie działa... to też daj znać i powiedz co nie działa. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 11.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
P.S. 18 linia to komentarz
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
uaktualniony:
[php:1:56856b8aaf]<?php $string = "454316"; if (strlen($string) == 1){$last = $string[(strlen($string)-1)];} else {$last = substr($string, -2);} ?>[/php:1:56856b8aaf] |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 11.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Można wpisać liczbę ujemną, wtedy zostawi ostatnią i wyrzuci resztę. Poza tym twój kod wyrzuci ostatnią a zostawi resztę... chyba... bo jak mówię nie mam gdzie sprawdzić... :?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Można i tak:
[php:1:bb071fe565]<?php function koncowka($amount) { if ($amount%10==0 || ($amount%100>10 && $amount%100<20)) { $buf="głosów"; } else if ($amount%10>1 && $amount%10<5) { $buf="głosy"; } else if ($amount==1) { $buf="głos"; } else { $buf="głosów"; } return $buf; } ?>[/php:1:bb071fe565] |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 28.01.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje za pomoc! Sposob Nitra dziala bez zarzutu. Co do sposobu majkela to nie sprawdzalem - Nitro wyrazil to nieco zwiezlej - ale dziekuje za checi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:02 |