Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dodawanie wartości do tablicy(małe litery - odświeżone)
Kaarpiik
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Witam!

W formularzu w polu input wpisuję jakiś wyraz. Chcę ten wyraz dodać do tablicy ale w ten sposób że każda literka w osobnej komórce np. Mariusz
tab[0] = M
tab[1] = a
tab[2] = r
itd.

Jak podzielić wpisany wyraz na osobne literki i przesłać w formularzu?

Ten post edytował Kaarpiik 13.01.2012, 15:31:24
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post
Post #2





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




http://pl.php.net/manual/en/function.str-split.php
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Dziękuje (IMG:style_emoticons/default/smile.gif)

Jeszcze jedno małe pytanko. Jak sprawdzić czy litera jest mała (lub duża)? Przerzucam się z języka C i tam było islower albo isupper. W PHP niestety tego nie ma (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




Bo PHP wymaga myślenia.

http://pl.php.net/manual/en/function.strtoupper.php
I jeśli litera po zmianie będzie różna od tej przed zmianą, znaczy że była mała.
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


oj w C też trzeba myśleć. Poradziłem sobie w inny sposób - po prostu zamieniłem każdą literkę na kod ASCII.

  1. for($i=0;$i<$split_size;$i++) {
  2. if(ord($split[$i]) >= 97 && ord($split[$i]) <= 122) $licznik++;
  3. }


tylko jest jeden problem.. nie dziala on na polskich znakach...

Ten post edytował Kaarpiik 13.01.2012, 15:51:34
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




A jesli uzyjesz mb_strtoupper i uzyjesz mojej metody to zadziala
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #7





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


nie wiem czy dobrze zrozumiałem ale kombinuje z tym i kombinuje i nic nie wychodzi

  1. function zamiana($tablica, $rozmiar) {
  2. $licznik = 0;
  3. $i = 0;
  4.  
  5. while($i < $rozmiar) {
  6. $upper = strtoupper($tablica[$i]);
  7. if($upper) {
  8. $licznik++;
  9. }
  10. $i++;
  11. }
  12.  
  13. return $licznik;
  14. }

wywołanie funkcji:
  1. echo zamiana($split, $split_size);


Licznik zawsze zwraca liczbę elementów w tablicy - nawet gdy wszystkie litery są duże.

Ten post edytował Kaarpiik 13.01.2012, 16:38:03
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




if($upper)
Przecież to jest zawsze PRAWDA....
Miałes porównać wartość po zmianie z wartością przed zmianą.
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #9





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


  1. function zamiana($tablica, $rozmiar) {
  2. $licznik = 0;
  3. $i = 0;
  4.  
  5. while($i < $rozmiar) {
  6. if(strtoupper($tablica[$i]) != $tablica[$i]) {
  7. $licznik++;
  8. }
  9. $i++;
  10. }
  11.  
  12. return $licznik;
  13. }

Dziękuję(IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 4.10.2025 - 01:44