Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Policz wyrazy kończące się na literę a.. Jak?
trebanol
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.06.2010

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


Musze napisać program w php, który liczy wyrazy zakończone na literę a. mógłby ktoś pomóc? p.s zależy mi na czasie;/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
jajcarzd1
post
Post #2





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Może na początek coś takiego

  1.  
  2. $a= "aaaa bbbba ccccccc ddddd eeea";
  3. $b = str_word_count($a,1);
  4.  
  5. $quantity = 0;
  6.  
  7. foreach ($b as $item) {
  8. if($item[strlen($item)-1] == 'a') $quantity++;
  9. }
  10.  
  11. echo $quantity;


--------------------
My mind is glowing ...
Jeśli pomogłem push the button :)
Go to the top of the page
+Quote Post
Wave
post
Post #3





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


  1. echo preg_match_all('/a[\W\:punct:]/', 'ala ma kota ale ola nie', $m);
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


  1. function licz($litera, $tekst, $rozrozniaj_duze_i_male = false)
  2. {
  3. $rozrozniaj_duze_i_male ? $tmp = $tekst : $tmp = strtolower($tekst);
  4. $txt = explode(" ", $tmp);
  5. $result = 0;
  6. foreach($txt as $t)
  7. preg_match("/" . $litera . "$/", $t) != 0 ? $result++ : '';
  8. return $result;
  9. }
  10.  
  11. echo licz("a", "AlA ma kota kot ma Alę");


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #5





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Cytat(darko @ 18.06.2010, 15:05:05 ) *
  1. function licz($litera, $tekst, $rozrozniaj_duze_i_male = false)
  2. {
  3. $rozrozniaj_duze_i_male ? $tmp = $tekst : $tmp = strtolower($tekst);
  4. $txt = explode(" ", $tmp);
  5. $result = 0;
  6. foreach($txt as $t)
  7. preg_match("/" . $litera . "$/", $t) != 0 ? $result++ : '';
  8. return $result;
  9. }
  10.  
  11. echo licz("a", "AlA ma kota kot ma Alę");


Tylko że np. przy takim odpaleniu

  1. echo licz("a", "AlA ma kota kot ma Alę");


tablica $txt ma 30 elementów a co za tym idzie jest wykonywanych dużo nadmiarowych przebiegów pętli.


--------------------
My mind is glowing ...
Jeśli pomogłem push the button :)
Go to the top of the page
+Quote Post
Wave
post
Post #6





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 13.01.2005

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


  1. echo preg_match_all('/a[\W\:punct:]/i', 'ala. ma kota ale olA nie', $m);
Go to the top of the page
+Quote Post
trebanol
post
Post #7





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 18.06.2010

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


Wielkie dzięki za pomoc jajcarzd1. Jakbyś (ty lub ktokolwiek inny) mógł jeszcze opisać pokolei linikami co sie dzieje mniej wiecej
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #8





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Cytat(trebanol @ 19.06.2010, 13:02:49 ) *
Wielkie dzięki za pomoc jajcarzd1. Jakbyś (ty lub ktokolwiek inny) mógł jeszcze opisać pokolei linikami co sie dzieje mniej wiecej


Heh a Tobie nie za dobrze ? smile.gif Takich leni to tylko pałą po jajach smile.gif

  1.  
  2. $a= "aaaa bbbba ccccccc ddddd eeea"; //to ejst ciąg w którym są wyrazy
  3.  
  4. /*
  5.  ta funkcja zlicza słowa w podanym ciągu, podane są 2 parametry wejściowe pierwszy to ciąg
  6. a drugi to "1" która oznacza że funkcja zwraca tablice ze wszystkimi słowami, sprawdź dokładnie w manualu
  7. */
  8. $b = str_word_count($a,1);
  9.  
  10. $quantity = 0; //ustawiamy licznik słów na zero
  11.  
  12.  
  13. /*
  14. poniżej lecimy w pętli i sprawdzamy każdy z wyrazów w tablicy. Używamy tam funkcji strlen do sprawdzenia długości wyrazu.
  15. Sprawdzamy literę na ostaniej pozycji jesli ejst "a" to zwiększamy licznik.
  16. */
  17. foreach ($b as $item) {
  18. if($item[strlen($item)-1] == 'a') $quantity++;
  19. }
  20.  
  21. echo $quantity;
  22.  


--------------------
My mind is glowing ...
Jeśli pomogłem push the button :)
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: 22.08.2025 - 00:28