Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Łączenie elementów w pętli
--Kermit--
post 7.05.2012, 06:42:38
Post #1





Goście







W pętli for przy każdym przejściu sprawdzam wartość:

  1. $cnt=$t[0][$a];


Przy 10 przejściach mam 10 różnych wartości $cnt
Chciałbym do jednej zmiennej zapisać te kolejne 10 wartości oddzielonych przecinkiem.
Jak to zrobić ?

Implode ?

Próbowałem to składać:
  1. $cnt.=$cnt[0][$a].","

ale wtedy przecinek mam tylko na końcu (lub na początku).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Quantum
post 7.05.2012, 06:51:21
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


Tak, do tego jest właśnie implode.
w pętli
  1. array_push($cnt, $t[0][$a]);
a przy wyświetlaniu:
  1. implode(',', $cnt);
Go to the top of the page
+Quote Post
bastard13
post 7.05.2012, 06:53:17
Post #3





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


  1. $cnt = '';
  2. foreach ($smthing as $smthing)
  3. {
  4. //some code
  5. $cnt .= $t[0][$a] . ",";
  6. //some code once again:P
  7. }
  8. $cnt = trim($cnt,',');

lub:
  1. $cnt = array;
  2. foreach ($smthing as $smthing)
  3. {
  4. //some code
  5. $cnt[] = $t[0][$a];
  6. //some code once again:P
  7. }
  8. $cnt = implode(',', $cnt);


--------------------
Go to the top of the page
+Quote Post
--Kermit--
post 7.05.2012, 07:41:37
Post #4





Goście







Hmm...
Wersja z:
  1. array_push($cnt, $t[0][$a]);

nie działa.

Print_r($cnt) nic mi nie zwraca. Zmienna jest pusta.
Go to the top of the page
+Quote Post
--Kermit--
post 8.05.2012, 00:34:47
Post #5





Goście







Udało się złożyć array_push, print_r($cnt) zwraca:

  1. [0] => p
  2. sh
  3. bo
  4. lo
  5. co
  6. qu
  7. cl
  8. da
  9. 19
  10. di
  11. )


Jednak użycie
  1. echo implode(',', $cnt);

Co prawda wyświetla wszystkie elementy, ale nie dodaje przecinka.
Nie wiem dlaczego, może chodzi o jakieś ukryte spacje, lub znaki nowej linii, ale co to by zmieniało, przecinki i tak powinny być ?
Go to the top of the page
+Quote Post
kontur
post 8.05.2012, 06:48:32
Post #6





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 3.04.2012

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


  1. $cnt='';
  2. for($i=0;$i<count($t[0]);$i++)
  3. {
  4. $cnt.=trim(t[0][$i]).',';
  5. }
  6.  
  7. //a teraz zeby na samym koncu nie bylo przecinka
  8. $lnth=strlen($cnt)-1;
  9. echo substr($cnt, 0, $lnth);
  10.  


Ten post edytował kontur 8.05.2012, 07:03:15
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: 14.08.2025 - 08:52