PHP知识点练习之数组分页
这篇文章介绍了如何在PHP中实现数组分页查询。文章首先展示了一个示例,其中包含一些数字,并使用`array_slice`函数来获取这些数字的分页结果。接着,文章详细解释了`array_slice`函数的使用方式,包括如何指定起始位置、结束位置以及长度等参数。最后,文章强调了在使用`array_slice`函数时需要注意的一些细节,如是否保留键值对等。总结来说,这篇文章主要介绍了如何在PHP中通过`array_slice`函数实现数组的分页功能,同时提供了具体的示例代码和详细的解释,以便读者更好地理解和应用这一技术。

复习下知识点,PHP数组分页同样适用于任何语言,以及数据库分页查询

<?php

$arr = [
    '1',
    '2',
    '3',
    '4',
    '5',
    '6',
    '7',
    '8',
    '9',
    '10',
];
// 分页大小
$page_size = 3;
// 页码
$page = isset($_GET['p']) ? $_GET['p'] : 1 ;
// 偏移量
$start = ($page - 1) * $page_size;

$data = array_slice($arr, $start,$page_size);

echo "<pre>";
var_dump($data);
echo "</pre>";

主要使用array_slice函数

官方描述 Description

array_slice(
    array $array,
    int $offset,
    ?int $length = null,
    bool $preserve_keys = false
): array

array_slice() returns the sequence of elements from the array array as specified by the offset and length parameters.

参数

array

The input array.

offset

If offset is non-negative, the sequence will start at that offset in the array.

If offset is negative, the sequence will start that far from the end of the array.

Note:

The offset parameter denotes the position in the array, not the key.

length

If length is given and is positive, then the sequence will have up to that many elements in it.

If the array is shorter than the length, then only the available array elements will be present.

If length is given and is negative then the sequence will stop that many elements from the end of the array.

If it is omitted, then the sequence will have everything from offset up until the end of the array.

preserve_keys

Note:

array_slice() will reorder and reset the integer array indices by default. This behaviour can be changed by setting preserve_keys to true. String keys are always preserved, regardless of this parameter.

咻兔哔
咻兔哔·2021年11月29日

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处

推荐文章

构建现代化个人博客系统:技术亮点与创新实践
后端技术

构建现代化个人博客系统:技术亮点与创新实践

本文介绍了作者构建现代化个人博客系统的技术选型、架构设计和创新实践。核心亮点包括采用Go+Nuxt.js+Vue3技术栈,实现高性能、可扩展的博客平台;创新功能如AI智能摘要生成系统、高性能全文搜索、现代化文件上传系统;微服务化架构、容器化部署及多层次安全防护;性能优化策略如缓存策略、数据库优化和前端性能优化。此外,还展示了智能简历模块、Waline评论系统及多主题支持等特色功能,系统性能指标优异。作者分享了技术收获与未来规划,旨在帮助全栈开发者提升技术能力。

12月10日74
本站更换了新的技术栈
后端技术

本站更换了新的技术栈

本文介绍了基于Go+Nuxt.js+Vue3技术栈构建的现代化个人博客系统。该系统采用微服务架构,包含前台展示、后台管理和API服务三大模块,支持容器化部署,具备高性能与高可用性。后端使用Go、Gin、GORM等技术,前端采用Nuxt.js+Vue3+TailwindCSS,并集成AI智能摘要生成、全文搜索、文件上传等核心功能。系统注重安全设计,实施JWT认证、XSS防护等措施,同时通过Redis缓存、CDN加速等策略优化性能。整体架构展示了现代Web开发的最佳实践,为同类项目提供参考价值。

12月10日62
Gorm格式化时间输出的另一种实现
后端技术

Gorm格式化时间输出的另一种实现

Gorm在读取时间时默认带有时区,不符合常规的日期格式。本文提出了一种通过自定义结构体和使用Gorm的Hook方式来解决这个问题。作者首先定义了一个只包含时间字段的结构体,并使用`Str`后缀和`json`标签来指定时间字段只参与存储而不参与数据输出。接着,通过Gorm的Hook机制实现时间字段的格式化。虽然这种方法不是特别高明,但确实提供了一种有效的解决方案。

7月22日81
Golang三方库收集-不定期更新
后端技术

Golang三方库收集-不定期更新

以下是一些热门的第三方库,包括网络请求库、RPC库、Web框架、热重启库、定时任务库、获取机器状态库、JWT库、验证码库、邮件库、汉字转拼音库、消息队列库、随机数库、Redis客户端库、雪花 ID 生成器库、Excel处理库、WEB框架库、数据库库、配置库、REDIS库、工具包库、参数验证库、日志库、JSON库、协程池库和类型转换库。这些库各有特色,适用于不同的开发场景,值得一试。

7月28日36