Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak usunąć ostatni przecinek z tablicy ?
Forum PHP.pl > Forum > Przedszkole
Morale
Mam pętle for i funkcję explode i jak chcę wczytać dane to wczytuję $dane[0] ($dane = explode("**", $plik))

I wyświetlam tak: echo $dane[0].', ';

Ale przecież ostatni przecinek nie jest mi potrzebny, bo już nie będzie więcej danych, a więc jak usunąć ostatni przecinek questionmark.gif

Będzie trzeba usuwać to jako przecinek, czy jako ostatni znak ?

z góry dzięki
qrees
Cytat(Morale @ 23.01.2008, 17:28:41 ) *
Mam pętle for i funkcję explode i jak chcę wczytać dane to wczytuję $dane[0] ($dane = explode("**", $plik))

I wyświetlam tak: echo $dane[0].', ';

Ale przecież ostatni przecinek nie jest mi potrzebny, bo już nie będzie więcej danych, a więc jak usunąć ostatni przecinek questionmark.gif

Będzie trzeba usuwać to jako przecinek, czy jako ostatni znak ?

z góry dzięki

Jeżeli to pętla for, to sprawa prosta. Sprawdzasz czy to jest ostatni element, jeżeli tak, to nie wypisujesz przecinka, jeżeli nie, to wypisujesz. Nie da się usunąć czegoś co już wypisałeś.
webdice
Możesz zrobić to mniej więcej tak:

  1. <?php
  2.  
  3. $string = 'A**B**C**D**E**F';
  4. $result = '';
  5.  
  6. $array = explode ('**', $string);
  7.  
  8. for ($i = 0; $i < count ($array); $i++)
  9. {
  10. $result .= $array[$i] . ', ';
  11. }
  12.  
  13. print substr ($result, 0, strlen ($result) - 2);
  14.  
  15. ?>


Pisane z palca, ewentualne błędy sobie sam poprawisz.
batman
Do usunięcia ostatniego znaku wystarczy napisać takie coś:
  1. <?php
  2. // -=[ciach]=-
  3. ?>

edit
Sroki za błąd. W następnym poście jest poprawna wersja.
webdice
Cytat(batman @ 23.01.2008, 20:21:59 ) *
Do usunięcia ostatniego znaku wystarczy napisać takie coś:
  1. <?php
  2. echo substr($zmienna, -1);
  3. ?>


Proponuje Ci zapoznać się z funkcją i jej parametrami.
batman
Dzięki za zwrócenie uwagi. Literówkę zrobiłem. Miało być:
  1. <?php
  2. echo substr($zmienna, 0, -1);
  3. ?>
krzysiekk
witam
nie wiem czy dobrze mysle ale zastosowanie inplode() powinno byc OK w tym przypadku
  1. <?php
  2. $array = array('lastname', 'email', 'phone');
  3. $comma_separated = implode(",", $array);
  4.  
  5. echo $comma_separated; // lastname,email,phone
  6. ?>
webdice
Cytat(krzysiekk @ 23.01.2008, 21:46:50 ) *
witam
nie wiem czy dobrze mysle ale zastosowanie inplode() powinno byc OK w tym przypadku
  1. <?php
  2. $array = array('lastname', 'email', 'phone');
  3. $comma_separated = implode(",", $array);
  4.  
  5. echo $comma_separated; // lastname,email,phone
  6. ?>


Wszystko było by dobrze gdyby to była tablica, a nie tekst.
batman
Chwil, chwila. Masz ciąg mniej więcej taki:
A**B**C**D ....
i chcesz aby między literami znajdowały się przecinki, a nie **?
Jeśli tak, to zamiast kombinować z pętlą i wycinaniem znaków z ciągu możesz zrobić w taki sposób:
  1. <?php
  2. $str = 'A**B**C**D';
  3. $new_str = str_replace('**', ',', $str);
  4. ?>
Morale
Mam A**B**C**D**, a nie A**B**C**D tongue.gif a to jest różnica.
batman
W takim razie możesz to zrobić tak:
  1. <?php
  2. $str = 'A**B**C**D**';
  3. $new_str = str_replace('**', ',', $str);
  4. echo substr($new_str, 0, -1);
  5. ?>
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.