Zakładamy, że są 3 liczby naturalne X, Y, Z.
X to ilość elementów w pewnym zbiorze
Y to ilość grup, na które chcemy ten zbiór podzielić
Z to nr grupy, którą chcemy wyświetlić
Dzieląc np. 83 na 5 grup zostanie nam troszkę reszty (3), więc tą trójkę rozkładamy pojedynczo na 3 pierwsze grupy więc powstają nam takie grupy:
1 = od 0 do 16
2 = od 17 do 33
3 = od 34 do 50
4 = od 51 do 66
5 = od 67 do 82
Numery tak naprawdę przedstawiają indexy w tablicach, które tworzone są automatycznie, stąd fakt, że pierwsza grupa zaczyna się zerem, a ostatnia kończy się 82.
Stworzyłem na szybko taką funkcje, która zwraca mi tablicę z odpowiadającymi indexami danej grupy, powiedzcie czy zrobilibyście to zupełnie inaczej, czy... czekam na uwagi.
<?php function part($count,$groups,$group) { if ($group <= $count - $min * $groups) { $to = ($min + 1) * $group; $from = $to - $min; } else { $from = $count - $min * ($groups - $group + 1) ; $to = $from + $min; $from++; } for ($i = $from; $i <= $to; $i++) { $array[] = $i - 1; } return $array; } ?>
Pozdrawiam!
Krzysiek