PHP实现对数组分页处理实例详解

2025-05-27 0 39

本文实例讲述了PHP实现对数组分页处理方法。分享给大家供大家参考,具体如下:

最近用到了用数组数据分页,这里整理了一下,具体代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73
<?php

class PaginationArray{

public $pageArray=array(); //数组

public $pageSize=10; //每页显示记录数

public $current= 1; //当前页

private $total=0; //总页数

private $prev=0; //上一页

private $next=0; //下一页

public $argumetsOther='';//设置参数

function __construct($array=array(),$pageSize=10,$current=1){

$this->pageArray=$array;

$this->pageSize=$pageSize;

$this->current=$current;

}

/*通过数组进行初始化

*

* 数组为关联数组,参数索引为pageArray,pageSize,current

*

*/

function setArguments($arr){

if (is_array($arr)){

$this->pageArray=$arr['pageArray'];

$this->pageSize=$arr['pageSize'];

$this->current=$arr['current'];

}else{

return ;

}

}

//返回链接

function page(){

$_return=array();

/*calculator*/

$this->total=ceil(Count($this->pageArray)/$this->pageSize);

$this->prev=(($this->current-1)<= 0 ? "1":($this->current-1));

$this->next=(($this->current+1)>=$this->total ? $this->total:$this->current+1);

$current=($this->current>($this->total)?($this->total):$this->current);

$start=($this->current-1)*$this->pageSize;

$arrleng=count($this->pageArray);

for($i=$start;$i<($start+$this->pageSize);$i++){

if($i >= $arrleng)break;

array_push($_return,$this->pageArray[$i]);

}

$pagearray["source"]=$_return;

$pagearray["links"]=$this->linkStyle(2);

return $pagearray;

}

//链接的样式

private function linkStyle($number=1){

$linkStyle='';

switch ($number){

case 1:

$linkStyle="<a href=\\"?page=1\\">first</a> <a href=\\"?page={$this->prev}\\">prev</a> <a href=\\"?page={$this->next}\\">next</a> <a href=\\"?page={$this->total}\\">end</a>";

break;

case 2:

$linkStyle="<a href=\\"?page=1&{$this->argumetsOther}\\">首页</a> <a href=\\"?page={$this->prev}&{$this->argumetsOther}\\">上一页</a> <a href=\\"?page={$this->next}&{$this->argumetsOther}\\">下一页</a> <a href=\\"?page={$this->total}&{$this->argumetsOther}\\">尾页</a>";

break;

}

return $linkStyle;

}

}

//调用的实例

/*

header('Content-Type: text/html;charset=utf-8');

$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");

$page= isset($_GET['page'])? $_GET['page'] : 1 ;

$arrayPage = new PaginationArray($array,"5",$page);

$r = $arrayPage->page();

foreach($r["source"] as $s){

echo $s.'<br />';

}

echo $r["links"];

*/

?>

希望本文所述对大家PHP程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP实现对数组分页处理实例详解 https://www.kuaiidc.com/73335.html

相关文章

发表评论
暂无评论