【问题标题】:How to paginate a foreach loop?如何对 foreach 循环进行分页?
【发布时间】:2015-03-28 17:25:14
【问题描述】:

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

获取supporters数组

的函数
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';
}
}

【问题讨论】:

  • 我会选择客户端 (js) 分页而不是服务器端 (php),因为您已经在处理整个数据集 ($supporters)。
  • 你可以在这里找到完整的解决方案stackoverflow.com/questions/22145259/…感谢Netbros

标签: php arrays foreach pagination


【解决方案1】:

您可以确定当前显示在您地址中的 GET 变量中的页面

.../supporters.php?page=1

然后您可以相应地设置 array_slice 函数的偏移量

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

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 2010-12-13
    • 2019-07-12
    • 2023-03-28
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    相关资源
    最近更新 更多