Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Usuwanie ostatniego znaku z ciągu
Forum PHP.pl > Forum > Przedszkole
EdeusEx
  1. <?php
  2. for ($i=0; $i<10; $i++) {
  3.    $list .= $pole[$i].',';
  4. }
  5. ?>

Jest sobie takie coś, tak? Jak po wykonaniu pętlu, z tego $list usunąć przecinek na końcu?
l0ud
Ja to robię tak:

  1. <?php
  2. $var = substr($var,0,strlen($var)-1);
  3. ?>


Aczkolwiek chętnie poznałbym lepszą metodę smile.gif
zegarek84
może nie lepszy ale jednak zawsze można kombinować ;p

kolejny nie optymalny co prawda sposób to sprawdzanie w pętli czy to nie jest ostatni krok i wstawianie przecinka warunkowo:
($i==9)?'':',';

następny to skrócenie pętli o jeden krok i dodanie ostatniego kroku poza pętlą już bez przecinka - bardziej optymalne od wstawiania warunkowego - choć raczej mniej optymalne niż przycięcie ostatniego znaku ;p - ogólnie każda droga dobra o ile prowadzi do celu - inna sprawa to optymalne rozwiązanie ;p
empathon
Cytat(l0ud @ 1.11.2008, 15:24:57 ) *
Ja to robię tak:

  1. <?php
  2. $var = substr($var,0,strlen($var)-1);
  3. ?>


Aczkolwiek chętnie poznałbym lepszą metodę smile.gif

Można też np. tak:
  1. <?php
  2. $string[strlen($string)-1] = NULL;
  3. ?>
Tibod
Można jeszcze tak

  1. <?php
  2. $list=rtrim($lista, ',')
  3. ?>
lukio
$string = 'abcdef';
$new_string = substr($string, 0, -1);

W efekcie otrzymamy:
$new_string = 'abcde';
thek
Tibod podaje najskuteczniejsze rozwiązanie. Nie wiecie bowiem czy ten przecinek istnieje czy nie. A operując na strstr możecie wyciąc potrzebny znak. Ja w sumie jeszcze przed rtrim zrobiłbym ogólnie trim by się ewentualnych białych znaków pozbyć z przodu i tyłu. Jeśli jednak tylko z tyłu wycinka to poszerzyłbym listę usuwanych znaków o wszystkie niedrukowalne, czyli wymienione w manualu do rtrim smile.gif
zegarek84
Cytat(thek @ 23.10.2009, 10:46:51 ) *
Tibod podaje najskuteczniejsze rozwiązanie. Nie wiecie bowiem czy ten przecinek istnieje czy nie. A operując na strstr możecie wyciąc potrzebny znak.

sorki za oftop przy tak staryyyym temacie ;p - ale nie ja odgrzebałem - i wiemy, że ten przecinek istnieje na końcu czytając pierwszy post i sposób jego wstawiania ;p - pozdro winksmiley.jpg
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.