Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Numerowanie takich samych wyrazów
Krisu
post 14.07.2008, 19:28:32
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Witam,

zakładając, że w tekście mamy 4 takich samych wyrazów, np ala kupiła mleko, ala była u babci, ala jadła obiad, ala piła mleko
w jaki sposób mógłbym zrobić by każdy wyraz ala był numerowany np. ala1 kupiła mleko, ala2 była u babci, ala3 jadła obiad, ala4 piła mleko

Mój poniższy przykład załatwia sprawę, jednak jest strasznie nie wydajny, jak mógłbym to inaczej zrobić?

  1. <?php
  2. $ilosc = 0;
  3.  
  4. for ($i = 0; $i < 1300; $i++) {
  5.  
  6. if ($w2[$i+1] == 'S' && $w2[$i+2] == 't' && $w2[$i+3] == 'r' && $w2[$i+4] == 'a' && $w2[$i+5] == 't' && $w2[$i+6] == 'y') { $ilosc++; $w2[$i+6] = $ilosc; }
  7.  
  8. }
  9. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post 14.07.2008, 19:39:57
Post #2





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




wyrazanie regularne:
  1. <?php
  2. function callback($matches){
  3. static $count = 0;
  4. $count++;
  5. return $matches[0].$count;
  6. }
  7. $search = '/ala/';
  8. $text = 'ala kupiła mleko, ala była u babci, ala jadła obiad, ala piła mleko';
  9. $text = preg_replace_callback($search, 'callback', $text );
  10. echo $text;
  11. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Krisu
post 14.07.2008, 19:43:59
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Dzięki za pomoc.
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 Wersja Lo-Fi Aktualny czas: 20.07.2025 - 08:20