我们的数据未必都是存储在数据库中,很多时候是用数组来组织的。所以获取数组数据,进行分页是比较常见的编程要求。分页的原理很简单,就是按分页数获取某个范围的数据而已,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,offset,length,preserve)
立即学习“PHP免费学习笔记(深入)”;
| 参数 | 描述 |
|---|---|
| array | 必需。规定输入的数组。 |
| offset |
必需。数值。规定取出元素的开始位置。 如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。 |
| length |
可选。数值。规定被返回数组的长度。 如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所有元素。 |
| preserve |
可选。可能的值:
|
例子 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 )
?>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号