![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Po poraddzie kolegow z forum.php.pl w swoim skrypcie uzylem obiektowego iteratora tablicy.
Mialo to dzialac tak: tworzony jest obiekt i wyliczany startIndex od ktorego tablica ma byc pokazywana np od elementu 0 (seek(0)). Nastepnie od wskazanego elementu pokazujemy 100 kolejnych elementow (limit=100). ten mechanizm dziala ok ale tylko na duzych tablicach. Jesli tablica ma np 3 elementy to iterator przeskakuje do poczatku i pokazuje 1,2,3,1,2,3,1,2,3,1,2,3 i tak 100elementow (a powinien tylko 1,2,3) Myslalem ze $iterator->valid() zatrzyma iterowanie tablicy ale okazuje sie ze nie. gdzie moze byc blad ? pozdrawiam G poniewaz nie ma odpowiedzi a udalo mi sie rozwiazac problem odpowiedam ze wystarczy uzyc petli while zamiast for a jako warunek dac $iterator->valid() i smiga pozdrawiam G |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Możesz bezpośrednio utworzyć obiekt ArrayIterator - nie musisz tego robić przez ArrayObject.
2. $limit możesz określić jako mniejszą (min) wartość z dwóch: 100, wielkość tablicy. Unikniesz problemu przy mniejszych tablicach. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 20:39 |