надеюсь я правильно понял вопрос =)
$names = range(1, 33);
$total = count($names);
$size = 7;
for ($i = 0; $i < 500; $i++) {
if (!isset($offset) || $offset >= $total) {
$offset = 0;
}
$slice = array_slice($names, $offset, $size);
do_whatever_you_need_with_the_slice($slice);
$offset += $size;
}
function do_whatever_you_need_with_the_slice($slice) {
echo implode('|', $slice) . '<br>';
}
выводит:
1|2|3|4|5|6|7
8|9|10|11|12|13|14
15|16|17|18|19|20|21
22|23|24|25|26|27|28
29|30|31|32|33
1|2|3|4|5|6|7
8|9|10|11|12|13|14
15|16|17|18|19|20|21
22|23|24|25|26|27|28
29|30|31|32|33
...
1|2|3|4|5|6|7
8|9|10|11|12|13|14
15|16|17|18|19|20|21
22|23|24|25|26|27|28
29|30|31|32|33
... и так далее