新闻中心

php中array_chunk保留键名怎么做_php分块后键名延续与自定义索引重置技巧

2025-11-27
浏览次数:
返回列表
默认array_chunk会重置键名,可通过自定义函数保留键名;例如使用array_keys与array_slice结合实现分块并保持原始键名,输出结果为键名依次为a、b、c等的子数组。

php中array_chunk保留键名怎么做_php分块后键名延续与自定义索引重置技巧

在 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(),而需要自己实现分块逻辑。可以结合 foreacharray_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妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多
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组合使用 

搜索