Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] pętla for, inna wartość ostatniego elementu tablicy
@rtur
post 11.10.2012, 06:23:32
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

Ostrzeżenie: (0%)
-----


  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'?


--------------------
Artur
Go to the top of the page
+Quote Post
jaslanin
post 11.10.2012, 06:27:20
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

Ostrzeżenie: (0%)
-----


  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

Ten post edytował jaslanin 11.10.2012, 06:29:28


--------------------
Good luck and happy PHP'ing
Go to the top of the page
+Quote Post
@rtur
post 11.10.2012, 06:57:41
Post #3





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

Ostrzeżenie: (0%)
-----


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),


--------------------
Artur
Go to the top of the page
+Quote Post
nospor
post 11.10.2012, 07:01:47
Post #4





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




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ć


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
darko
post 11.10.2012, 07:04:08
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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. }


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
bostaf
post 11.10.2012, 09:20:18
Post #6





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

Ostrzeżenie: (0%)
-----


implode:
  1. $imiona = 'Kasia, Zosia';
  2. echo implode(',', explode(', ',$imiona));

Albo po prostu str_replace:
  1. $imiona = 'Kasia, Zosia';
  2. echo str_replace(', ', ',', $imiona);
Go to the top of the page
+Quote Post
tr!ckle
post 11.10.2012, 15:06:27
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 2
Dołączył: 12.05.2009

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
redeemer
post 11.10.2012, 15:11:37
Post #8





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


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);


Ten post edytował redeemer 11.10.2012, 15:12:14


--------------------
Go to the top of the page
+Quote Post
@rtur
post 11.10.2012, 16:22:05
Post #9





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

Ostrzeżenie: (0%)
-----


Dzięki wszystkim za podpowiedzi.


--------------------
Artur
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 03:43