Home >php教程 >PHP源码 >PHP 二维数组分页处理

PHP 二维数组分页处理

PHP中文网
PHP中文网Original
2016-05-25 17:12:011161browse

PHP 二维数组分页处理

两种方式,一种直接用array_slice(),另外一种是传统方式for循环次数的控制,大家看看给些意见,或者谁有更好的办法,也一并分享出来,谢谢。 

方法一:

<?php
$arr_click = array(
array( &#39;clicks&#39; => 3, &#39;clickDate&#39; =>&#39;2010-10-11&#39; ),
array( &#39;clicks&#39; => 2, &#39;clickDate&#39; =>&#39;2010-10-11&#39; ),
array( &#39;clicks&#39; => 3, &#39;clickDate&#39; =>&#39;2010-10-09&#39; ),
array( &#39;clicks&#39; => 1, &#39;clickDate&#39; =>&#39;2010-10-08&#39; ),
);
$page = 2;
$indexinpage=2;
$newarr = array_slice($arr_click, ($page-1)*$indexinpage, $indexinpage);
?>

原理如下:
和分页原理一样
数组用 array_slice(array,offset,length) 函数在数组中根据条件取出一段值。
array:需要处理的数组
offset:取出元素的开始位置
length:返回数组的长度
在每页中改变 offset 的值就行了!
方法二:
例如:

<?php
$arr_click = array(
array( &#39;clicks&#39; => 3, &#39;clickDate&#39; =>&#39;2010-10-11&#39; ),
array( &#39;clicks&#39; => 2, &#39;clickDate&#39; =>&#39;2010-10-11&#39; ),
array( &#39;clicks&#39; => 3, &#39;clickDate&#39; =>&#39;2010-10-09&#39; ),
array( &#39;clicks&#39; => 1, &#39;clickDate&#39; =>&#39;2010-10-08&#39; ),
);
$size = 3;
$pnum = ceil(count($arr_click) / $size);
if(isset($_GET[&#39;page&#39;])){
    $page = intval($_GET[&#39;page&#39;]);
    $page = $page > $pnum? $pnum: $page;
    $page = $page < $pnum? 1: $page;
}else{
    $page = 1;
}
for($i = 0; $i < $size; $i++){
    if(!isset($arr_click[($page - 1) * $size + $i]))break;
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    print_r($arr_click[($page - 1) * $size + $i]);
    echo &#39;<br>&#39;;
}
?>
<a href="ad.php?page=<?php echo $page - 1 > 0? $page - 1: 1; ?>">上一页</a>
<a href="ad.php?page=<?php echo $page + 1 < $pnum? $page + 1: $pnum; ?>">下一页</a>


 以上就是PHP 二维数组分页处理的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:ThinkPHP抽出来的分页类Next article:php数组组合算法