因为手上做的一个网站设计到数组分页、从网上找了个对数组分页的帖子、能不能麻烦学长们帮我分析下这个数组分页每行代码的作用啊、我自己也标记了一部门、但整个看起来看是很模糊
<?php
//申明数组
$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");
//获取当前页
$page=$_GET["page"];
//调用函数page并向page传值,将结果赋值给$r
$r=page($array,"3",$page);
//循环数组内容、每循环一次复制给$value ,不过这个source是什么?
foreach($r["source"] as $value){
//想屏幕输出循环结果
echo $value;
}
echo "<br />";
//输出函数结果$r
echo $r["page"];
//定义函数page
function page($array,$pagesize,$current){
//定义$_return为一个数组
$_return=array();
/*calculator*/
//总页数等于$array数组中的记录数除以每页显示的记录,并取整
$total=ceil(Count($array)/$pagesize);
//上一页等于当前页数减1、如果当前页减1小于等于0为真,则当前页等于1,
$prev=(($current-1)<=0 ? "1":($current-1));
//下一页等于当前页加1、如果当前页等于大于总页数、当前页等于总页数
$next=(($current+1)>=$total ? $total:$current+1);
//当前页如果大于总页数、等于总页数、否则为当前页
$current=($current>($total)?($total):$current);
//这个地方不理解
$start=($current-1)*$pagesize;
//这个for循环也不理解,后面的能不能学长能不能帮我写下呢?
for($i=$start;$i<($start+$pagesize);$i++){
array_push($_return,$array[$i]);
}
$pagearray["source"]=$_return;
$pagearray["page"]="<a href=\"?page=1\">first</a> <a href=\"?page={$prev}\">prev</a> <a href=\"?page={$next}\">next</a> <a href=\"?page={$total}\">end</a>";
return $pagearray;
}
?>
<?php
//申明数组
$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");
//获取当前页
$page=$_GET["page"];
//调用函数page并向page传值,将结果赋值给$r
$r=page($array,"3",$page);
//循环数组内容、每循环一次复制给$value ,不过这个source是什么?
foreach($r["source"] as $value){
//想屏幕输出循环结果
echo $value;
}
echo "<br />";
//输出函数结果$r
echo $r["page"];
//定义函数page
function page($array,$pagesize,$current){
//定义$_return为一个数组
$_return=array();
/*calculator*/
//总页数等于$array数组中的记录数除以每页显示的记录,并取整
$total=ceil(Count($array)/$pagesize);
//上一页等于当前页数减1、如果当前页减1小于等于0为真,则当前页等于1,
$prev=(($current-1)<=0 ? "1":($current-1));
//下一页等于当前页加1、如果当前页等于大于总页数、当前页等于总页数
$next=(($current+1)>=$total ? $total:$current+1);
//当前页如果大于总页数、等于总页数、否则为当前页
$current=($current>($total)?($total):$current);
//这个地方不理解
$start=($current-1)*$pagesize;
//这个for循环也不理解,后面的能不能学长能不能帮我写下呢?
for($i=$start;$i<($start+$pagesize);$i++){
array_push($_return,$array[$i]);
}
$pagearray["source"]=$_return;
$pagearray["page"]="<a href=\"?page=1\">first</a> <a href=\"?page={$prev}\">prev</a> <a href=\"?page={$next}\">next</a> <a href=\"?page={$total}\">end</a>";
return $pagearray;
}
?>
解决方案 »
- 留言内容遇到7-11位纯数字,自动隐藏掉其中2位,代码应该怎么写?
- vista 下修改apache 配置文件的错误
- php5.3通过SQL Server Driver for PHP连接mssql后怎样分页
- 关于购物车信息的存储 cookies 会话 和数据库 我有两个办法 但有疑虑
- PHP处理登录问题
- PHP session不能保存信息???求助
- update问题???
- 请各位帮忙看一下,书上的这个例子有点不能理解!!!!!!!!!!!!!!
- 在php怎么得到当月的总天数?
- 请问如何用html或php打印页面?
- 字符串转为二维数组
- 求解,php版的des加密放到网站上加密结果不同是什么回事?
<?php
//申明数组
$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");
//获取当前页
$page=$_GET["page"];
//调用函数page并向page传值,将结果赋值给$r
$r=page($array,"3",$page);
//循环数组内容、每循环一次复制给$value ,不过这个source是什么?
//$r["source"]为下面的数字数组。你打印一下就知道了。
foreach($r["source"] as $value){
//想屏幕输出循环结果
echo $value;
}
echo "<br />";
//输出函数结果$r
echo $r["page"];
//定义函数page
function page($array,$pagesize,$current){
//定义$_return为一个数组
$_return=array();
/*calculator*/
//总页数等于$array数组中的记录数除以每页显示的记录,并取整
$total=ceil(Count($array)/$pagesize);
//上一页等于当前页数减1、如果当前页减1小于等于0为真,则当前页等于1,
$prev=(($current-1)<=0 ? "1":($current-1));
//下一页等于当前页加1、如果当前页等于大于总页数、当前页等于总页数
$next=(($current+1)>=$total ? $total:$current+1);
//当前页如果大于总页数、等于总页数、否则为当前页
$current=($current>($total)?($total):$current);
//这里开始计算分页。这是分页的公式。(当前页-1)*每页显示数量
$start=($current-1)*$pagesize;
//这个for循环也不理解,后面的能不能学长能不能帮我写下呢?
for($i=$start;$i<($start+$pagesize);$i++){
array_push($_return,$array[$i]); //假设当前为第一页,每页显示10个,则$start=0;从0循环到9;即把$array[0],.....$array[9]赋值给$_return;
}
$pagearray["source"]=$_return; //把$_return赋值给$pagearray这个数组以source为键名。
//为数组$pagearray第二个元素赋值、以page为键名。值为分页信息。
$pagearray["page"]="<a href=\"?page=1\">first</a> <a href=\"?page={$prev}\">prev</a> <a href=\"?page={$next}\">next</a> <a href=\"?page={$total}\">end</a>";
return $pagearray; //返回这个数组
}
?>
$r=page($array,"3",$page);
function page($array,$pagesize,$current)
还想问下、他在定义函数page的时候、给了三个参数、$array,$pagesize,$current但是在调用这个函数的时候也给了三个参数$array,"3",$page那么这个时候函数中的$current = $page 么?
如果是这样、能不能定义函数的时候直接 是
function page(){
}
这种形式呢?