Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie ostatniego znaku stringu
Forum PHP.pl > Forum > Przedszkole
cekso
Witam, temat usuwania ostatniego znaku był już kilka razy poruszany, ale w żadnym nie znalazłem odpowiedzi (lub nie potrafię zastosować) do mojego dynamicznego stringu.
Otóż mam formułę :

  1. <?php
  2. $ile = count($paczki);
  3. for ($i=0; $i <$ile; $i++)
  4.   {
  5. print $paczki[$i].',';
  6.   }
  7. ?>


Z htmlowego <textarea> pobierane są dane, które są zliczane, a następnie odpowiednie dane z formularza wyświetlane po przecinku (text,text2,text3,) w polu tekstowym, do skopiowania przez użytkownika.
I pojawia się problem, na końcu także generowany jest przecinek, którego nie chcę.
Próbowałem juz rtrim oraz substr, lecz albo usuwał on każdy przecinek, albo nie usuwał żadnego. Problemu by nie było gdyby nie " .',' "
Więc może wie ktoś jak usunąć ostatni przecinek ?
Rozwiązanie może być banalne, lecz nic nie przychodzi mi do głowy.

Z góry dziękuję za pomoc.
kkuba
  1. <?php
  2. $ile = count($paczki);
  3. for ($i=0; $i <$ile; $i++)
  4. {
  5.    echo $paczki[$i];
  6.    if($i != $ile) echo ',';
  7. }
  8. ?>


+ układaj kod.

Pozdrawiam.
cekso
Niewiem czy to możliwe, ale mimo warunku, przecinek na końcu wciąż jest generowany ;|
marcio
Zamiast:
  1. <?php
  2. print $paczki[$i].',';
  3. ?>

Daj:
  1. <?php
  2. print implode(',', $paczki[$i]);
  3. ?>


Zreszta pokaz jak uzywales substr() bo nie chce mi sie wierzyc ze nie dzialalo.

Wygladalo by to tak:
  1. <?php
  2. print substr($paczki[$i], 0, -1);
  3. ?>

Blad molg polegac na tym ze jako argument podajesz co chwile nowy wpis ze zmiennej $paczki i wtedy moze ucinac ostatni znak z kazdego wpisu to rob tak:
  1. <?php
  2. $tab[] = $paczki[$i].',';
  3. substr($tab, 0, -1);
  4. ?>
kkuba
  1. <?php
  2. $ile = count($paczki);
  3. for ($i = 1; $i <= $ile; $i++)
  4. {
  5.   echo $paczki[$i];
  6.   if($i != $ile) echo ',';
  7. }
  8. ?>
cekso
1. implode zamiast stringu, generuje sobie bezczelnie błąd w moim polu.

2. mimo poprawek kkuby, przecinek dalej nie ma zamiaru sie wynieść
" for ($i = 1; " musi zaczynać od 0, bo inaczej pierwszy element stringu nie jest wyswietlany
webdice
  1. <?php
  2.  
  3. $z = '';
  4. $ile = count($paczki);
  5.  
  6. for ($i=0; $i <$ile; $i++)
  7.  {
  8. $z .= $paczki[$i].',';
  9.  }
  10.  
  11.  print rtrim ($z, ',');
  12.  
  13. ?>
cekso
Cytat(webdice @ 2.06.2009, 16:44:45 ) *
  1. <?php
  2.  
  3. $z = '';
  4. $ile = count($paczki);
  5.  
  6. for ($i=0; $i <$ile; $i++)
  7.  {
  8. $z .= $paczki[$i].',';
  9.  }
  10.  
  11.  print rtrim ($z, ',');
  12.  
  13. ?>



Jest idealnie smile.gif

Wielkie dzięki smile.gif
grubyZdzich
  1. <?php
  2. $bez_ostatniego_przecinka = substr("string_z_przecinkiem_na_koncu", 0, -1);
  3. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.