Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Błąd w kodzie
HTFhere
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 4.11.2013

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


Witam. Chcę napisać kod, który będzie wczytywał string zawierający imiona oddzielone przecinkiem z pliku, a następnie jeśli jakieś imie będzie się powtarzało, to aby dopisywał na końcu kolejnych powtórzonych imion cyfrę w nawiasach( np jeśli bedzie 4 Szymonów, to pierwszy niech zostanie jak jest, drugi niech będzie Szymon(1), trzeci Szymon(2) itd.). Wystukałem taki kod
  1. $plik = 'imiona.txt';
  2. $uchwyt = fopen($plik, 'r');
  3. $zawartosc = fread($uchwyt, (filesize($plik)-1));
  4. fclose($uchwyt);
  5. $imiona = explode(",", $zawartosc);
  6. $a=count($imiona);
  7. for($b=0;$b<($a-1);$b++){
  8. $d = 1;
  9. for($c=0;$c<($a-1);$c++) {
  10. if($c == $b){
  11. //niech nic się nie dzieje;
  12. } elseif ($imiona[$c] === $imiona[$b]) {
  13. $imiona[$c] .= "($d)";
  14. $d++;
  15. }
  16.  
  17.  
  18. }
  19. }
  20.  

Który niestety nie działa tak jak bym chciał,dla tylko 1 powtarzającego się imienia działa prawidłowo, gdy jest więcej już nie, nie mogę znaleźć błędu w moim rozumowaniu- pomoże ktoś? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
HTFhere
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 4.11.2013

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


  1. foreach($tab as $linia) {
  2. $ile[$linia]++;
  3. }
  4.  
  5. while(list($indeks, $wartosc) = each ($ile)) {
  6. echo "$indeks - $wartosc<br />";
  7. }

To jest naprawdę świetny kod! ( nie licząc tego, że wywala mi błędy "notice:undefined variable" i "undefined index" (IMG:style_emoticons/default/wink.gif) ) ale nie chodziło mi o to konkretnie. Chciałbym tą tablicę z imionami posortować, a w momencie sortowania( używam ksort() do sortowania po imionach, bo łączę tą tablicę z tablicą z nazwiskami) jak jest kilka takich samych imion, to mi je usuwa i zostawia tylko jedno. Dlatego dla każdego kolejnego powtarzającego się imienia chciałbym dodawać numery na jego końcu. Czy ma ktoś pomysł jak to zrobić? (Chyba, że jest jakiś inny sposób na posortowanie tych imion).
pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 07:28