Po poraddzie kolegow z forum.php.pl w swoim skrypcie uzylem obiektowego iteratora tablicy.
$arrayobject = new ArrayObject($produkty); $iterator = $arrayobject->getIterator(); $iterator->seek($startIndex); for($i=1;$i<=$limit;$i++) { if($iterator->valid()){ } $iterator->next(); }
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