如何对foreach循环进行分页?

时间:2015-01-29 13:05:52

标签: php arrays foreach pagination

我有一个 foreach循环,它从自定义帖子类型中显示位于 post_meta 中的支持者。我想要做的是将分页添加到foreach循环中。我已经找到了一种方法来决定通过切割数组来显示多少支持者,但现在我不知所措。并且不知道如何继续。

获取支持者数组

的功能
function getSupporters($petitieID){
$support = get_post_meta(get_the_ID(), 'supporters', true);

if (!empty($support)){
    return $support;
}}

显示数组中个别支持者

的功能
function showSupporters($petitieID){

$supporters = getSupporters($petitieID);
if (!empty($supporters)){
    foreach (array_slice($supporters, 0, 2) as $supporter){

    $supporterID = $supporter->post_author;
        the_author_meta('first_name', $supporterID);
    }

}else {

    echo    'no votes';
}
}

1 个答案:

答案 0 :(得分:3)

您可以确定当前在地址

中的GET变量中显示的页面
.../supporters.php?page=1

然后您可以相应地设置array_slice功能的偏移量

$nItemsPerPage = 2;
$page = isset($_GET['page'])?$_GET['page']:1;
array_slice($supporters, $nItemsPerPage*($page-1), $nItemsPerPage)