8, 'clickDate' =>'2010-10-13' ), array( 'clicks' => 7, 'clickDate' =>'2010-10-12' ), array( 'clicks' => 6, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 5, 'clickDate' =>'2010-10-13' ), array( 'clicks' => 4, 'clickDate' =>'2010-10-12' ), array( 'clicks' => 3, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 2, 'clickDate' =>'2010-10-10' ), array( 'clicks' => 1, 'clickDate' =>'2010-10-09' ), array( 'clicks' => 0, 'clickDate' =>'2010-10-08' ), ); $size = 3; $pnum = ceil(count($arr_click) / $size); if(isset($_GET['page'])){ $page = intval($_GET['page']); $page = $page > $pnum? $pnum: $page; }else{ $page = 1; } $page = empty($_GET['page']) ? '1' : $_GET['page']; for($i=($page-1)*$size;$i<$page*$size;$i++) { if(!isset($arr_click[($page - 1) * $size + $i]))break; $arr = $arr_click[($page - 1) * $size + $i]; echo $i."
"; print_r($arr); echo "
"; } ?> 上一页 下一页
我数组有9条数据
每一页是3条
现在第二页数组的数据显示不错
这是第二页显示的
本来应该是clicks=>5 4 3
点第三页就没有数据了
$arr = $arr_click[($page - 1) * $size + $i]; 不知道如何修改这句
这个是第一页
php 数组分页显示
答案:2 悬赏:40
解决时间 2021-02-22 13:56
- 提问者网友:心裂
- 2021-02-22 03:42
最佳答案
- 二级知识专家网友:嗷呜我不好爱
- 2021-02-22 04:08
这句的算法就不正确了。if(!isset($arr_click[($page - 1) * $size + $i]))break;
这句改成 if(!isset($arr_click[$i]))break; 当第三页的时候 $i 已经是从索引6开始了,你原来的句子却是 (3-1)*3+6 肯定 超出索引了啦。
我想你的第二页数据,虽然显示了,肯定与索引不对,第二页按你的搞法,应该是显示的索引6开始的。 第一页显示的 应该是索引为3开始的。
还有
if(isset($_GET['page'])){
$page = intval($_GET['page']);
$page = $page > $pnum? $pnum: $page;
}else{
$page = 1;
}
$page = empty($_GET['page']) ? '1' : $_GET['page'];这段代码,if 里面已经有page了。后面还要再获取一次page干嘛呢。
望采纳啦。有什么问题可以百度HI我。
这句改成 if(!isset($arr_click[$i]))break; 当第三页的时候 $i 已经是从索引6开始了,你原来的句子却是 (3-1)*3+6 肯定 超出索引了啦。
我想你的第二页数据,虽然显示了,肯定与索引不对,第二页按你的搞法,应该是显示的索引6开始的。 第一页显示的 应该是索引为3开始的。
还有
if(isset($_GET['page'])){
$page = intval($_GET['page']);
$page = $page > $pnum? $pnum: $page;
}else{
$page = 1;
}
$page = empty($_GET['page']) ? '1' : $_GET['page'];这段代码,if 里面已经有page了。后面还要再获取一次page干嘛呢。
望采纳啦。有什么问题可以百度HI我。
全部回答
- 1楼网友:时光不老我们不分离
- 2021-02-22 05:23
方法如下:
3, 'clickdate' =>'2010-10-11' ),
array( 'clicks' => 2, 'clickdate' =>'2010-10-11' ),
array( 'clicks' => 3, 'clickdate' =>'2010-10-09' ),
array( 'clicks' => 1, 'clickdate' =>'2010-10-08' ),
);
$page = 2;
$indexinpage=2;
$newarr = array_slice($arr_click, ($page-1)*$indexinpage, $indexinpage);
?>
原理如下:
和分页原理一样
数组用 array_slice(array,offset,length) 函数在数组中根据条件取出一段值。
array:需要处理的数组
offset:取出元素的开始位置
length:返回数组的长度
在每页中改变 offset 的值就行了!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯