Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z pętla foreach
Forum PHP.pl > Forum > Przedszkole
Star
Witam

Mam taką tablicę:

  1. Array ( [0] => Array ( [0] => 1 [1] => 2 [2] =>3 [3] => 4 [4] => 5))


kod od petli

  1. foreach ($wynik as $val) {
  2. echo "matched: " . $val[0] . "\n";
  3. echo "part 1: " . $val[1] . "\n";
  4. echo "part 2: " . $val[3] . "\n";
  5. echo "part 3: " . $val[4] . "\n\n";
  6. }


chciałem wywołac ja za pomocą pętli i wszystko jest ok poza tym ,że pokazuje mi podwojnie,tzn zamiast 4 wyników mam 8. Co jest tego przyczyną ?
kreatiff
Na pewno nie ta pętla, bo ona wykonuje się tylko raz. Więc albo masz inną tablicę $wynik na wejściu, albo w kodzie gdzieś jest coś co powoduje podwójne wywołanie tej pętli.
Jeśli dane do tablicy $wynik pobierane są z bazy, to najpierw przejrzyj za pomocą var_dump() cały wynik zapytania. Całkiem możliwe, że to właśnie tam jest to "podwojenie".
Star
sprawa wygląda tak ze za pomocą preg_match_all(); przeparsowałem linki aby wyciagnac z nich identyfikatory
link do parsowania wyglada tak :
<a id="login" href="http://jakasstrona.pl/(.+?)/">
gdy linkow na stronie jest np 50 i gdy to sprawdzam wrzucając wynik do inputa to pierw mam 50
value="<a id="login" href="http://jakasstrona.pl/23">" />
value="<a id="login" href="http://jakasstrona.pl/24">" />
value="<a id="login" href="http://jakasstrona.pl/25">" />

a dopiero po tych 50 pojawia sie własciwe czyli np
value="23" />
value="24" />
value="25" />

w jaki sposób moge to naprawić ?
kreatiff
Czyli tablica $wynik jest inna niż pokazujesz w pierwszym poście, bo preg_match_all tworzy tablicę wielowymiarową, w której podtablica [0] zawiera całe dopasowanie wzoru, a dopiero kolejne poddablice [1], [2], itd. ewentualne dopasowania cząstkowe wskazane we wzorze.

Zrób foreach tylko dla $wynik[1], albo przed pętlą usuń podtablicę z indeksem [0].
Star
Miałeś racje,pomogło :-)
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.