Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wspolny foreach dla tablicy jedno i dwuwymiarowej
Forum PHP.pl > Forum > PHP
maczos5
Wysyłam za pomocą Select Multiple zaznaczone pozycje Option. Przykładowo Select Multiple ma nazwę name="grupa[]" .Dzięki temu w wyniku wysłania formularza otrzymuje tablicę:
["emailGroup"]=> array(2) { [0]=> string(1) "4" [1]=> string(1) "5" }.

Jednak oprócz tego w formularzu przesyłam zwykłe inputy, który nie są tablicami :
["submit"]=> string(10) "Zatwierdź" ["id"]=> string(1) "2" ["name"]=> string(8) "osobiste"

Po wysłaniu formularza dokonuje analizy, który pola są puste:
foreach ($_POST as $key=>$value)
{
}

I przypadku tablic w tablicy post otrzymuje warning:
Invalid argument supplied for foreach().

Da się jakoś przekształcić pętle foreach aby była porawna jednocześnie dla tablic jednowymiarowych jak i dwuwymiarowych??
wr24
zeby nie rzucalo warninga sprawdzaj czy tablica nie jest pusta przed wywolaniem foreach
w samej petli zaloz warunek sprawdzajacy czy $value jest tablica czy nie jesli warunek spelniony lecisz z po $value z nastepny foreach'em
tvister
Użyj array_merge i połącz tabl post i emailGroup :-p .
Sposób drugi wywoływać rekurencje w funkcji np:
  1. function petla ($post){
  2. foreach ($post as $k => $w)
  3. if (is_array($w)) petla($w);
  4. else print('dupa';
  5. }


maczos5
"Użyj array_merge i połącz tabl post i emailGroup :-p ."
To raczej odpada, bo nie bedzie to wtedy dynamiczne, ale drugi sposób jak najbardziej ok.
Dzięki za pomoc

p.s.
Jednak o 1 w nocy ciężko się myśli tongue.gif

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.