Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] pętla for, inna wartość ostatniego elementu tablicy
Forum PHP.pl > Forum > Przedszkole
@rtur
  1. $imiona = 'Kasia, Zosia';
  2. $imiona = explode(', ',$imiona);
  3. $c = count($imiona);
  4. for($ia=0;$ia<$c;$ia++){
  5. echo $imiona[$ia].',';}

Witam, taki kod przy dwóch imionach w tablicy wyświetli mi 'Kasia,Zosia,', co zrobić aby wyświetlił mi się ostatni element tablicy bez przecinka na końcu, czyli 'Kasia,Zosia'?
jaslanin
  1. $imiona = 'Kasia, Zosia';
  2. $imiona = explode(', ',$imiona);
  3. $c = count($imiona);
  4. echo implode(',', $imiona);


jeżeli potrzebna ci jest ilość imion, możesz też użyć substr_count +1 zamiast explode
@rtur
to był tylko fragment kodu w całości jest jeszcze zmienna $rok która ma się pojawiać obok każdego imienia, więc sposób z implode() chyba odpada.
  1. $rok=$dane['rok']
  2. $imiona = 'Kasia, Zosia';
  3. $imiona = explode(', ',$imiona);
  4. $c = count($imiona);
  5. for($ia=0;$ia<$c;$ia++){
  6. echo '('.$rok.' - '.$imiona[$ia].'),';}

cały wynik chce zatem aby był taki:
  1. (2012 - Kasia),(2014 - Zosia)

a z mojej pętli wychodzi taki:
  1. (2012 - Kasia),(2014 - Zosia),
nospor
Po prostu gdy wyświetlasz ostatni element, to nie wyświetlaj już przecinka.... Przecież to, czy jesteś w ostatnim elemencie czy nie to bez trudu jesteś w stanie określić
darko
Dodaj warunek sprawdzający czy bieżąca iteracja jest po ostatnim elemencie.
  1. for($ia=0;$ia<$c;$ia++){
  2. if($ia == $c -1)
  3. {
  4. echo $imiona[$ia];
  5. }
  6. else
  7. {
  8. echo $imiona[$ia].',';
  9. }
  10. }
bostaf
implode:
  1. $imiona = 'Kasia, Zosia';
  2. echo implode(',', explode(', ',$imiona));

Albo po prostu str_replace:
  1. $imiona = 'Kasia, Zosia';
  2. echo str_replace(', ', ',', $imiona);
tr!ckle
Albo tak:
  1. $imiona = 'Kasia, Zosia';
  2. $imiona = explode(', ',$imiona);
  3. $c = count($imiona);
  4. for($ia=0;$ia<$c;$ia++)
  5. {
  6. if($ia != 0)
  7. echo ',';
  8. echo $imiona[$ia];
  9. }
redeemer
Cytat(@rtur @ 11.10.2012, 07:57:41 ) *
to był tylko fragment kodu w całości jest jeszcze zmienna $rok która ma się pojawiać obok każdego imienia, więc sposób z implode() chyba odpada.
Nic bardziej mylnego.

  1. $rok=$dane['rok']
  2. $imiona = 'Kasia, Zosia';
  3. $imiona = explode(', ',$imiona);
  4. $c = count($imiona);
  5. $tmpArray = array();
  6. for($ia=0;$ia<$c;$ia++) {
  7. $tmpArray[] = '('.$rok.' - '.$imiona[$ia].'),';
  8. }
  9.  
  10. echo implode(', ', $tmpArray);
@rtur
Dzięki wszystkim za podpowiedzi.
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.