新闻中心
php中array_chunk保留键名怎么做_php分块后键名延续与自定义索引重置技巧
默认array_chunk会重置键名,可通过自定义函数保留键名;例如使用array_keys与array_slice结合实现分块并保持原始键名,输出结果为键名依次为a、b、c等的子数组。

在 PHP 中使用 array_chunk() 函数时,默认情况下会重置键名,即分块后的每个子数组都会从 0 开始重新索引。如果你希望保留原始数组的键名,或者实现键名延续、自定义索引控制,就需要手动处理。
默认 array_chunk 会重置键名
看一个例子:
$original = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4]; $chunks = array_chunk($original, 2); print_r($chunks);
输出结果为:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 3
[1] => 4
)
)
可以看到,原始的键名 'a', 'b' 等全部丢失,被数字索引替代。
保留原始键名的方法
要保留键名,不能直接用 array_chunk(),而需要自己实现分块逻辑。可以结合 foreach 和 array_slice() 来实现:
function array_chunk_with_keys($array, $size) {
$chunks = [];
$keys = array_keys($array);
for ($i = 0; $i < count($keys); $i += $size) {
$chunk = [];
$slicedKeys = array_slice($keys, $i, $size);
foreach ($slicedKeys as $key) {
$chunk[$key] = $array[$key];
}
$chunks[] = $chunk;
}
return $chunks;
}
使用示例:
$original = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5]; $chunks = array_chunk_with_keys($original, 2); print_r($chunks);
输出结果:
Motiff妙多
Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”
334
查看详情
Array
(
[0] => Array
(
[a] => 1
[b] => 2
)
[1] => Array
(
[c] => 3
[d] => 4
)
[2] => Array
(
[e] => 5
)
)
这样就成功保留了原始键名。
自定义是否重置索引
你可以扩展函数,增加一个参数来控制是否重置索引:
function array_chunk_advanced($array, $size, $preserveKeys = true, $resetIndex = false) {
$chunks = [];
$keys = array_keys($array);
for ($i = 0; $i < count($keys); $i += $size) {
$slicedKeys = array_slice($keys, $i, $size);
$chunk = [];
foreach ($slicedKeys as $key) {
$chunk[$key] = $array[$key];
}
if (!$preserveKeys) {
$chunk = array_values($chunk);
}
if ($resetIndex) {
$chunk = array_values($chunk);
}
$chunks[] = $chunk;
}
return $chunks;
}
说明:
- $preserveKeys = true:保留原始键名
- $preserveKeys = false:丢弃键名,只保留值(类似原生 chunk)
- $resetIndex = true:强制从 0 开始重新编号键(即使保留值顺序)
示例:不保留键名
$chunks = array_chunk_advanced($original, 2, false); // 输出:[[1,2], [3,4], [5]]
总结
PHP 原生的 array_chunk() 不支持保留键名。如果需要保持键名或灵活控制索引方式,推荐使用自定义函数:
- 用 array_keys() + array_slice() 配合循环提取每块键值对
- 通过参数控制是否保留键名或重置索引
- 适用于关联数组分页、数据批量处理等场景
基本上就这些,按需选择实现方式即可。
以上就是php中array_chunk保留键名怎么做_php分块后键名延续与自定义索引重置技巧的详细内容,更多请关注其它相关文章!
# 适用于
# 翻译优化网站高中
# 菏泽响应式网站建设
# 定西网站建设系统
# 网站可以不优化吗
# seo推广营销公司哪家好一点
# 莱阳产品关键词排名
# 公司网站建设济宁
# 做seo真的有用吗
# 推广网站的视频
# 网站综合优化哪家稳妥
# php
# 推荐使用
# 你可以
# 如果你
# 键值
# 上传
# 怎么做
# 组中
# 自定义
# 键名
# 键值对
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
利用Bokeh CustomJS动态控制DataTable列可见性
没有大陆身份证/银行卡如何实名微信? 亲测有效的几种方法分享
Animex动漫社网入口地址 Animex动漫社网正版在线入口
c++中的std::basic_string的SSO优化_c++短字符串优化深度解析
微博网页版直接访问 微博网页版账号管理快速入口
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
漫蛙2网页版漫画入口 漫蛙漫画在线官方登录
Win11怎么设置鼠标指针速度_Win11提高鼠标指针精确度选项
内存检查:在VS Code中调试C++时的内存视图
《GTA6》开发画面疑似泄露!这次可不是AI了
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
Win11文件资源管理器卡顿怎么修 Win11重置资源管理器进程优化响应速度【修复方法】
深入理解Google Cloud Datastore查询:祖先路径与数据一致性
如何使用纯J*aScript判断Input元素是否在特定类容器内
Tabulator表格中精确实现日期时间排序的指南
在Blazor WebAssembly应用中动态注入客户端特定指标代码的策略
深入理解Promise链:如何在catch后中断then的执行
J*aScript井字棋(Tic-Tac-Toe)核心交互逻辑实现教程
铁路12306官网网页端快速入口 铁路12306官方首页登录教程
最新韩小圈网页版登录入口_官网在线观看官方链接
J*aScript中赋值与自增运算符的复杂交互与执行机制
抖音创作助手登录入口_抖音创作辅助工具官网直达
MAC怎么安装Homebrew包管理器_MAC为开发者和高级用户安装命令行工具
1688商家版怎样分析买家画像精准供货_1688商家版分析买家画像精准供货【供货策略】
抖音未来赚钱的新趋势 2025年值得关注的变现风口分析
淘宝支付提示失败如何解决 淘宝支付流程优化方法
QQ邮箱官方网站登录入口_QQ邮箱网页版在线使用
Log4j Console Appender性能瓶颈与高并发优化策略
腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法
LINUX怎么设置定时任务_LINUX crontab配置教程
mc.js游戏直达 mc.js网页免下载版本秒进地址
蛙漫2台版漫画地址 Manwa2正版网页版链接
《燕云十六声》两周内达九百万玩家!位居畅销榜第五
使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战
qq邮箱日历功能怎么用_创建日程与会议邀请的技巧
Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略
如何在离线环境中使用Composer_Composer离线安装依赖包的技巧与策略
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
百度网盘网页版入口 百度网盘网页版官方登录网址
深入理解J*a链表中的IPosition接口与使用
漫蛙官网正版漫画入口 漫蛙2官方网页登录地址
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
蛙漫移动版在线看 蛙漫手机浏览器直达入口
c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架
Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性
C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果
c++如何使用chrono库处理时间_c++标准库时间与日期操作
c++如何实现单例设计模式_c++线程安全的单例模式写法
ArrayList与LinkedList操作复杂度详解:遍历与修改
CSS Grid如何控制元素对齐_align-items与justify-items组合使用


2025-11-27
浏览次数:次
返回列表
s);