Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Foreach nie przebiega całej tablicy
Forum PHP.pl > Forum > PHP
yevaud
Prosty kawałek kodu:

  1. $homePages = $itemRepository->fetchHomeScreen();
  2. echo 'array:' . is_array($homePages) . ' count:' . count($homePages) . '<br>';
  3.  
  4. reset($homePages);
  5. foreach ($homePages as $index => $item);
  6. {
  7. echo $index . '->';
  8. echo $item->getId() . '<br>';
  9. }
  10. echo '<br><br>';
  11.  
  12. for ($index = 0; $index < count($homePages); $index++)
  13. {
  14. $item = $homePages[$index];
  15. echo $index . '->';
  16. echo $item->getId() . '<br>';
  17. }
  18. var_dump($homePages);
  19. die('end');


Efekt wykonania:

array:1 count:3 Czyli tablica 3 elementowa
2->1 Efekt wykonania pętli foreach


0->3 Pętla for
1->2 Pętla for
2->1 Pętla for
array (size=3) Zaczyna się dump tablicy - obetnę go dla lepszej czytelności
0 =>
object(Application\Entity\Home)[721] ....
1 =>
object(Application\Entity\Home)[721] ....
2 =>
object(Application\Entity\Home)[721] ....
end die na koniec

Dlaczego pętla foreach widzi tylko ostatni element??
Damonsson
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
KsaR
Yyyy nie ogarniam, więc otrzymuje nadprzyrodzone moce i jestem wrozbita czarodziej.gif

Jakby nie patrzec robisz 2x ta sama petle tylko z inna wartoscia w petli {...}.

O ile dobrze rozumiem to, po pierwszej petli zmienia ci sie indeks bo leci do konca.
I w drugiej juz jest na ostatnim.

Nie wiem, uzyj znow reset(); przed druga petla,
Lub opisz lepiej problem.


Dół redeemer, ja na tabelcie to nie dostrzegłem w kodzie tak rzadkiego błędu biggrin.gif.

Parser by chyba wyrzucił błąd przy wlaczonym raportowaniu hmmm...
redeemer
Ksar: Damonsson już odpowiedział.
yevaud
Cytat(Ksar @ 11.07.2015, 20:38:38 ) *
Parser by chyba wyrzucił błąd przy wlaczonym raportowaniu hmmm...


Parser niestety nic nie mówiłsmile.gif Technicznie wszystko było ok. Pętla nie robiła nic poza przebiegiem po tablicy, a kod z nawiasów wykonywał się poprawnie dla ostatniego indeksu/zmiennej - tak jak pętla je ustawiła przy ostatnim przebiegu.
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.