Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuniecie przecinka z konca ciagu w petli
Forum PHP.pl > Forum > Przedszkole
viamarimar
Jak usunac przecinek z ostatniej lini w tej petli.
Chodzi o linie:
  1. echo $rm['method_name'].",";

Probuje tak ale to kasuje polowe wynikow petli
  1. while($rm = mysqli_fetch_assoc($result)) {
  2. //echo $rm['method_name'].",";
  3. $string = $rm['method_name'].",";
  4.  
  5. }
  6. $new_string = substr($string, 0, -1);
  7. echo $new_string;
trueblue
Kasuje połowę, bo w pętli nadpisujesz wciąż zmienną, a nie doklejasz. To nie wina substr.

A jeśli nie chcesz używać substr, to może być rtrim, przy czym usunie wszystkie przecinki z końca, ale to chyba nie problem.
viamarimar
+= czy cos takiego polaczy ciag w tej petli? by potem usunac przecinek

//nie nie problem
trueblue
Nie. W PHP do łączenia stringów służy kropka.
JoShiMa
A wrzuć sobie te stringi w pętli do tablicy a na końcu zastosuj funkcję implode: http://php.net/manual/en/function.implode.php
Lion
Załadowanie do tablicy (ale bez przecinków), użycie implode z przecinkiem jako "glue" a następnie rtrim lub substr to dobry pomysł.
viking
Ewentualnie można zaimplementować http://php.net/manual/pl/cachingiterator.hasnext.php wink.gif
viamarimar
Wrzucilem tablice do pelti ale gdy probuje ja wyswietlic nie ma wartosci. print_r zwraca array() - czyli pusto
  1. $string = array();
  2. while($rm = mysqli_fetch_assoc($result)) {
  3. //echo $rm['method_name'].",";
  4.  
  5. for ($i=0, $b=count($string); $i<$b; $i++){
  6. $string[$i] = $rm['method_name'].",";
  7. }
  8.  
  9. }
  10. echo 'sss';
  11. print_r($string);
  12. for ($i=0, $b=count($string); $i<$b; $i++){
  13. echo $string[$i].'sssss';
  14. }


Jesli uzyje implode? to jak ma mi to pomoc w odjeciu ostatniego przecinka bo nadal nie bardzo rozumiem. Potne ciag na czesci i mam na podstawie ostatniego elementu tablicy...?

Co to jest glue? Chodzi o kropke?
trueblue
Tablica jest pusta, bo wrzucasz dane w niepotrzebnej pętli, która nigdy się nie wykona ($i=0,$b=0).
Ta pętla jest niepotrzebna. Również nie jest potrzebne doklejanie przecinka do elementów wrzucanych do tablicy.

Albo: http://php.net/manual/en/function.array-push.php albo druga ramka w tym dokumencie.
Lion
Pierwsza pętla for jest źle napisana. W zmiennej $i masz 0 i w zmiennej $b też masz 0, czyli od razu kończy się wykonywanie tej pętli. Ogólnie pętla ta nie jest Ci potrzebna.

Jeśli chodzi o glue, to jest to zwyczajowa nazwa dla pierwszego argumentu funkcji implode - zobacz w manualu PHP jak ona działa.
JoShiMa
Do tablicy wrzucasz bez przecinka a potem implodujesz z użyciem przecinka (parametr glue) co powoduje, że nie pojawia się on na końcu a jedynie oddziela elementy które wrzuciłeś do tablicy.
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.