Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]implode() problem
rychu123
post 26.06.2009, 08:43:43
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Witam,

mam taki proble chciałbym zapisac wszystkie wartosci z itputa w jeden cią znaków odzielająch || np

"tekst1||tekst2||tekst3||tekst4"

mam taki skrypt

$array = array($_POST[tekst1], '$_POST[tekst2]', '$_POST[tekst3]','$_POST[tekst4]');

$wynik = implode('||', $array);

i w tym jest proble że jak
'$_POST[tekst3]','$_POST[tekst4]' bedzie pusty to mi wstawi || || znaki chciałbym zeby tych znaków w tedy nie było


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
nospor
post 26.06.2009, 08:44:49
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no to buduj tablice tylko z niepustych wartosci. Ciezko najpierw sprawdzic czy jest pusta czy nie a dopiero potem wlozyc?


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

"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
rychu123
post 26.06.2009, 08:46:16
Post #3





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(nospor @ 26.06.2009, 09:44:49 ) *
no to buduj tablice tylko z niepustych wartosci. Ciezko najpierw sprawdzic czy jest pusta czy nie a dopiero potem wlozyc?


a jak to trzeba zrobic questionmark.gif


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
nospor
post 26.06.2009, 08:47:22
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




konstrukcja warunkowa: if
sprawdzenie czy puste: empty()
wlozenie do tablicy: $tab[] = 'jakas wartosc'

ps: przenosze


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

"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
rychu123
post 26.06.2009, 08:56:33
Post #5





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(nospor @ 26.06.2009, 09:47:22 ) *
konstrukcja warunkowa: if
sprawdzenie czy puste: empty()
wlozenie do tablicy: $tab[] = 'jakas wartosc'

ps: przenosze

dalej nie rozumie jak to zrobic


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
Largo
post 26.06.2009, 09:09:55
Post #6





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Witam,

Nie jestem pewny, ale można to zrobić tak.

  1. <?php
  2.  
  3. $data = array();
  4.  
  5. foreach( $_POST['nazwa_formularza'] AS $key => $value )
  6. {
  7.   $data[ $key ] = isset( $_POST[ $key ] ) ? $value : '';
  8.  
  9.   if ( empty( $data[ $key ] ) )
  10.   {
  11.        continue;
  12.   }
  13. }
  14.  
  15. $array = implode( '||', $data );
  16.  
  17. ?>


Pozdrawiam,
Largo

Ten post edytował Largo 26.06.2009, 09:11:29
Go to the top of the page
+Quote Post
rychu123
post 26.06.2009, 09:13:48
Post #7





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(Largo @ 26.06.2009, 10:09:55 ) *
Witam,

Nie jestem pewny, ale można to zrobić tak.

  1. <?php
  2. $data = array();
  3.  
  4. foreach( $_POST['nazwa_formularza'] AS $key => $value )
  5. {
  6.   $data[ $key ] = isset( $_POST[ $key ] ) ? $value : '';
  7.  
  8.   if ( empty( $data[ $key ] ) )
  9.   {
  10.        continue;
  11.   }
  12. }
  13.  
  14. $array = implode( '||', $data );
  15.  
  16. ?>


Pozdrawiam,
Largo


ale tych formularz jest 30 i to racej nie bedzie


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
skowron-line
post 26.06.2009, 09:19:47
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. function notEmpty( $value )
  3. {
  4.    return ( !empty( $value )) ? $value : null;
  5. }
  6.  
  7. echo join( '|', array_map( 'notEmpty', $_POST ));
  8. ?>


*pisane z palca


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
rychu123
post 26.06.2009, 09:26:17
Post #9





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(skowron-line @ 26.06.2009, 10:19:47 ) *
  1. <?php
  2. function notEmpty( $value )
  3. {
  4.    return ( !empty( $value )) ? $value : null;
  5. }
  6.  
  7. echo join( '|', array_map( 'notEmpty', $_POST ));
  8. ?>


*pisane z palca


nie niewiem dalej jak to zrobic moze jakies wyjasnienie


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
skowron-line
post 26.06.2009, 09:29:37
Post #10





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


a próbowałeś zrobić tak
  1. <?php
  2. inplode( '||', $_POST );
  3. ?>


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
rychu123
post 26.06.2009, 09:31:20
Post #11





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(skowron-line @ 26.06.2009, 10:29:37 ) *
a próbowałeś zrobić tak
  1. <?php
  2. inplode( '||', $_POST );
  3. ?>


ale tak się raczej nieda zrobic poniewaz mam 30 inputów i chce to zapisac w jeden ciąg znaków


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
Wicepsik
post 26.06.2009, 11:35:43
Post #12





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


rychu123, bierzesz się za coś czego nie umiesz. Wiesz co to manual? Wpisujesz tam nazwę funkcji i wszystko masz wyjaśnione co robi.
inplode" title="Zobacz w manualu PHP" target="_manual
array_map" title="Zobacz w manualu PHP" target="_manual
join" title="Zobacz w manualu PHP" target="_manual
foreach" title="Zobacz w manualu PHP" target="_manual


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 26.06.2009, 11:38:08
Post #13





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(rychu123 @ 26.06.2009, 08:31:20 ) *
ale tak się raczej nieda zrobic poniewaz mam 30 inputów i chce to zapisac w jeden ciąg znaków

A próbowałeś questionmark.gif Bo piszesz bzdury


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
piotrooo89
post 26.06.2009, 12:49:14
Post #14


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




problem mnie zainteresował więc wymyśliłem coś takiego (nie mówię że to jest najlepszy sposób, może ktoś zna lepszy chętnie poznam smile.gif ).

  1. <?php
  2. $tab['z1'] = 'zm1';
  3. $tab['z2'] = 'zm2';
  4. $tab['z3'] = '';
  5. $tab['z4'] = '';
  6.  
  7. print_r($tab);
  8.  
  9. foreach($tab as $key => $value)
  10. {
  11.    if (!empty($value))
  12.    {
  13.        $show[] = $value;
  14.    }
  15. }
  16.  
  17. print_r($show);
  18.  
  19. echo implode('||', $show);
  20. ?>


zrobiłem sobie dodatkową tablice $show w której trzymam wartości wypełnionych pól, później na niej już tylko implode.


--------------------
Go to the top of the page
+Quote Post
Wicepsik
post 26.06.2009, 13:06:18
Post #15





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Jeżeli wysyła tylko inputy to można zrobić coś takiego

  1. <?php
  2. foreach($_POST as $value)
  3. {
  4.   if (!empty($value))
  5.   {
  6.       $show[] = $value;
  7.   }
  8. }
  9.  
  10. print_r($show);
  11.  
  12. echo implode('||', $show);
  13. ?>


--------------------
Go to the top of the page
+Quote Post
piotrooo89
post 26.06.2009, 13:11:18
Post #16


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




to był tylko przykład, nie czepiać się winksmiley.jpg


--------------------
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: 21.07.2025 - 12:23