加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何从数组做分页?

发布时间:2020-12-13 13:14:38 所属栏目:PHP教程 来源:网络整理
导读:我有一个数组,我想用分页显示数据. $display_array = Array( [0] = "0602 xxx2",[1] = "0602 xxx3",[2] = 5 // Total= 2+3 [3] = "0602 xxx3",[4] = "0602 saa4",[5] = 7 // Total = 3+4) 我尝试过这样的事情 function pagination($display_array,$page){ gl
我有一个数组,我想用分页显示数据.
$display_array = Array
(
    [0] => "0602 xxx2",[1] => "0602 xxx3",[2] => 5 // Total= 2+3
    [3] => "0602 xxx3",[4] => "0602 saa4",[5] => 7 // Total = 3+4
)

我尝试过这样的事情

function pagination($display_array,$page)
{   
    global $show_per_page;
    $page = $page < 1 ? 1 : $page;
    $start = ($page - 1) * $show_per_page;
    $end = $page * $show_per_page;
    for($i = $start; $i < $end; $i++)
    {
        ////echo $display_array[$i] . "<p>";
        // How to manipulate this?   
        // To get the result as I described below.
    }
}

我想做一个分页,得到这样的预期结果:

如果我定义$show_per_page = 2;然后分页($display_array,1);输出:

0602 xxx2
0602 xxxx3
Total:5

和异教徒($display_array,2);输出:

0602 xxx3
0602 saa4
Total:7

如果我定义$show_per_page = 3,那么分页($display_array,1);输出:

0602 xxx2
0602 xxxx3
Total: 5 
0602 xxx3

和异教徒($display_array,2);输出:

0602 saa4
Total:7

如果我定义$show_per_page = 4;输出:

0602 xxx2
0602 xxxx3
Total:5
0602 xxx3
0602 saa4
Total: 7
看看这个:
function paganation($display_array,$page) {
        global $show_per_page;

        $page = $page < 1 ? 1 : $page;

        // start position in the $display_array
        // +1 is to account for total values.
        $start = ($page - 1) * ($show_per_page + 1);
        $offset = $show_per_page + 1;

        $outArray = array_slice($display_array,$start,$offset);

        var_dump($outArray);
    }

    $show_per_page = 2;

    paganation($display_array,1);
    paganation($display_array,2);


    $show_per_page = 3;
    paganation($display_array,2);

输出为:

// when $show_per_page = 2;
array
  0 => string '0602 xxx2' (length=9)
  1 => string '0602 xxx3' (length=9)
  2 => int 5
array
  0 => string '0602 xxx3' (length=9)
  1 => string '0602 saa4' (length=9)
  2 => int 7

// when $show_per_page = 3;
array
  0 => string '0602 xxx2' (length=9)
  1 => string '0602 xxx3' (length=9)
  2 => int 5
  3 => string '0602 xxx3' (length=9)
array
  0 => string '0602 saa4' (length=9)
  1 => int 7

$show_per_page = 3的输出与您的输出不同,但我不知道您期望什么?你想获取剩下的一切(即’0602 saa4’和7)加上一个以前的元素(即’0602 xxx3′)?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读