我们的数据未必都是存储在数据库中,很多时候是用数组来组织的。所以获取数组数据,进行分页是比较常见的编程要求。分页的原理很简单,就是按分页数获取某个范围的数据而已,PHP给我们提供了一个很便利的函数:array_slice()。array_slice() 函数在数组中根据条件取出一段值,并返回。

下面举两个分页例子,都很简单。

 public function books($pagenum = 1){include_once("page.php");include("arr_books.php");foreach ($data['books'] as $key=>$value){$name[$key] = $value['name'];$rank[$key] = $value['rank'];}array_multisort($rank,SORT_NUMERIC,SORT_DESC,$data['books']);  // 倒序//array_multisort($rank,SORT_NUMERIC,SORT_ASC,$data['books']);   // 顺序$perpage = 10;$count = count($data['books']);$pages = new PageClass($count, $perpage, $pagenum, base_url().'veda/books/{page}/');$start = ($pagenum - 1) * $perpage;$data['bks'] = array_slice($data['books'], $start, $perpage);$data['nav'] = $pages -> myde_write($pagenum);$this->load->view('header', $data);$this->load->view('books', $data);$this->load->view('footer', $data);}

再来一个:

$perpage = 2;
$page = intval(getgpc('page')) ? intval($_G['gp_page']) : 1;
$start = ($page - 1) * $perpage;
$count = count($group_list);
$list = array_slice($group_list, $start, $perpage);
$multipage = multi($count, $perpage, $page, "home.php?mod=space&do=group&type=".getgpc('type'));

array_slice() 函数

array_slice() 函数在数组中根据条件取出一段值,并返回。如果数组有字符串键,所返回的数组将保留键名。

语法:array_slice(array,offset,length,preserve)

参数 描述
array 必需。规定输入的数组。
offset

必需。数值。规定取出元素的开始位置。

如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。

length

可选。数值。规定被返回数组的长度。

如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所有元素。

preserve

可选。可能的值:

  • true - 保留键
  • false - 默认 - 重置键

例子 1:

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));
// Array ( [0] => Cat [1] => Horse )
?>

例子 2(带有负的 offset 参数):

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,-2,1));
// Array ( [0] => Horse )
?>

例子 3(preserve 参数设置为 true):

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2,true));
// Array ( [1] => Cat [2] => Horse )
?>

例子 4(带有字符串键):

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird");
print_r(array_slice($a,1,2));
// Array ( [b] => Cat [c] => Horse )
?>
http://www.nowamagic.net/librarys/veda/detail/1609

记录一下PHP数组数据分页的方法 array_slice() 函数的使用相关推荐

  1. 易语言返回数组数据的解决方法

    我分别写好了两个子程序 一个实现功能的子程序和一个数据库查询子程序(功能和数据调用分开) 中间是使用一个类将数据进行打包进行传递 这是功能实现子程序: 这是数据查询子程序 这是数据打包的类 我仔细一想 ...

  2. PHP中对数组进行分页处理的原理及分页实例

    PHP中对数组进行分页处理的原理及分页实例 最近用到了用数组数据分页,所以就整理了一下,希望能对大家有用! <?php class PaginationArray{    public $pag ...

  3. 大数据量分页查询方法(转)

    本文旨在介绍一种对数据库中的大数据量表格进行分页查询的实现方法,该方法对应用服务器.数据库服务器.查询客户端的cpu和内存占用都较低,查询速度较快,是一个较为理想的分页查询实现方案. 1.问题的提出  ...

  4. 数据分页 THINKPHP3.2 分页 三种分页方法

    数据分页复制本页链接opensns 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持. 下面是数据分页的两种示例.第一种:利用Page类和limit方法$U ...

  5. 千万级别数据查询优化_MySQL大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

  6. mysql一样的查询在我本地很快但是线上很慢_MySQL大数据量分页查询方法及其优化...

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

  7. MySQL 和 Oracle 大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

  8. C语言删除二维数组的重复数据的一个方法

    C语言删除二维数组的重复数据的一个方法 //以下头文件,未及清理 #include "stdafx.h" #include <vector> #include < ...

  9. JS对数据分页的封装方法

    本文为原创代码,转载请注明出处:http://www.pm-road.com/index.php/2014/07/24/26/ 因为web端经常会展示很多数据,如果一页下来,肯定会看的眼花缭乱,所以肯 ...

最新文章

  1. Linux下不同服务器间数据传输
  2. 【2018.5.12】模拟赛之一-ssl2413 排名【玄学】
  3. [转] [Elasticsearch] 数据建模 - 处理关联关系(1)
  4. Spark中使用Dataset的groupBy/agg/join/broadcast hasjoin/sql broadcast hashjoin示例(java api)
  5. IIS建立两个站点服务,只有一个公网IP
  6. 非模块化jar的模块化转换
  7. 信号与系统 matlab综合实验 pdf,《信号与系统——MATLAB综合实验》 谷源涛-第三讲.pdf...
  8. centos 关机命令_全了 Linux 常用命令大汇集
  9. 青春不散场,CSDN毕业季有奖征文开启啦~~
  10. 微信分享按钮隐藏、显示问题和注意事项
  11. 酒仙桥 asp.net 面试
  12. 云计算机和云储存,云计算和云存储是什么关系?
  13. 如何写好CSS?(OOCSS DRY SMACSS)
  14. 怎么把电脑设为服务器共享文档,共享电脑设置 服务器
  15. Kotlin 协程探索
  16. 基于java的在线考试系统设计(含源文件)
  17. 共享单车回收难ofo垃圾成山 共享单车该如何管理?
  18. 致远SPM之协同供应链集成解决方案
  19. 4668. 【NOIP2016提高A组模拟7.19】腐败
  20. 对接奇门ASCP通过该接口通知商家仓成交订单对应的物流订单信息接口

热门文章

  1. oracle多表查询while,oracle while的用法示例分享
  2. C# USB视频人脸检测
  3. 查看数据库大小或者表大小
  4. 系统补丁自动批量安装
  5. linux 下创建GRE隧道
  6. LoadRunner解决“服务器正在运行中”方法
  7. 如何让HTML在手机上实现直接拨打电话以及发送短信?
  8. GlobalSign 团队与世界领先的认证机构(CAs)合作 共同加强网络安全
  9. ASP.NET 动态加载WebService功能
  10. 卸载gnome3,投奔Xfce