array_slice实现分页

array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array 

从数组中取出一段,并返回。

参数4用来控制是否保留键名,需要注意的是如果数组有字符串键,所返回的数组将保留键名。

返回根据 offset 和 length 参数所指定的 array数组中的一段序列,包括offset位置的那个数据,为数组格式。原数组不变

如果 offset 非负,则序列将从 array中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。

如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。

$input = array('aa' =>"a", 'bb'=>"b", 'cc' => "c", 'dd'=>"d", 'ee'=>"e");

$output = array_slice($input, 2);      
$output1 = array_slice($input, -2, 1);
/*
Array
(
    [cc] => c
    [dd] => d
    [ee] => e
)
Array
(
    [dd] => d
)
*/

情景: 使用array_slice()实现分页

/*
* 数组分页函数  核心函数  array_slice
* 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中
* $count   每页多少条数据
* $page   当前第几页
* $array   查询出来的所有数组
* order 0 - 不变     1- 反序
 * */
function page_array($count,$page,$array,$order=0){
    global $countpage; #定全局变量
    $page=(empty($page))?'1':$page; #判断当前页面是否为空 如果为空就表示为第一页面
    $start=($page-1)*$count; #计算每次分页的开始位置,$count设定每页显示几条
    if($order==1){
        $array=array_reverse($array);  #函数返回翻转顺序的数组
    }
    $totals=count($array);
    $countpage=ceil($totals/$count); #计算总页面数
    $pagedata=array();
    $pagedata=array_slice($array,$start,$count);
    return $pagedata;  #返回查询数据
}
/**
 * 分页及显示函数
 * $countpage 全局变量,照写
 * $url 当前url
 */
function show_array($countpage,$url){
    $page=empty($_GET['page'])?1:$_GET['page'];
    if($page > 1){
        $uppage=$page-1;

    }else{
        $uppage=1;
    }

    if($page < $countpage){
        $nextpage=$page+1;

    }else{
        $nextpage=$countpage;
    }

    $str='<div style="border:1px; width:300px; height:30px; color:#9999CC">';
    $str.="<span>共  {$countpage}  页 / 第 {$page} 页</span>";
    $str.="<span><a href='$url?page=1'>   首页  </a></span>";
    $str.="<span><a href='$url?page={$uppage}'> 上一页  </a></span>";
    $str.="<span><a href='$url?page={$nextpage}'>下一页  </a></span>";
    $str.="<span><a href='$url?page={$countpage}'>尾页  </a></span>";
    $str.='</div>';
    return $str;
}
$arr = [1,2,3,4,5,6,7,8,9,10];
//生成点击链接
$str = show_array(5,"http://127.0.0.1/php/array/array_slice_1.php");
echo $str;

//每页显示2条,当前是第三页
$page = isset($_GET['page'])?$_GET['page']:1;
$pagedata = page_array(2,$page,$arr);
echo '<pre>';
print_r($pagedata);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值