这只是用于测试的模拟代码。
$g=16;
for($p=1;$p<17;$p++){
$start = $g-$p > 3 ? ($p-4<1?1:($p-4)) : $g-6;
echo "$p :: ";
for($i=$start;$i
echo $i . " ";
}
echo "
";
}
?>所以你的起始页由(实际需要的东西)决定:
$start = $g-$p > 3 ? ($p-4<1?1:($p-4)) : $g-6;输出(模拟g = 16,p从1到16)::
p ::页码
1 :: 1 2 3 4 5 6 7
2 :: 1 2 3 4 5 6 7
3 :: 1 2 3 4 5 6 7
4 :: 1 2 3 4 5 6 7
5 :: 1 2 3 4 5 6 7
6 :: 2 3 4 5 6 7 8
7 :: 3 4 5 6 7 8 9
8 :: 4 5 6 7 8 9 10
9 :: 5 6 7 8 9 10 11
10 :: 6 7 8 9 10 11 12
11 :: 7 8 9 10 11 12 13
12 :: 8 9 10 11 12 13 14
13 :: 10 11 12 13 14 15 16
14 :: 10 11 12 13 14 15 16
15 :: 10 11 12 13 14 15 16
16 :: 10 11 12 13 14 15 16并且模拟g = 8,p从1到8
1 :: 1 2 3 4 5 6 7
2 :: 1 2 3 4 5 6 7
3 :: 1 2 3 4 5 6 7
4 :: 1 2 3 4 5 6 7
5 :: 2 3 4 5 6 7 8
6 :: 2 3 4 5 6 7 8
7 :: 2 3 4 5 6 7 8
8 :: 2 3 4 5 6 7 8