PHP层级分类JSON移除外层ID键的技术需求
修改unflattenArray函数输出结构
假设你的原unflattenArray函数返回的是以分类ID为键的关联数组,示例结构如下:
[ 1 => [ 'id' => 1, 'name' => '父分类', 'children' => [...] ], 2 => [ 'id' => 2, 'name' => '子分类', 'children' => [...] ] ]
要移除外层ID键、仅保留分类信息数组,只需利用PHP的array_values()函数提取数组的所有值即可,分类内部的id字段不会受到影响。
方案1:直接修改函数返回逻辑
在原函数的层级转换逻辑完成后,用array_values()处理结果再返回:
function unflattenArray($flatArray) { // 原有的层级转换逻辑保持不变 $result = []; foreach ($flatArray as $item) { // 此处保留你原本的分类层级构建代码 $result[$item['id']] = $item; } // 关键修改:提取数组值,去掉外层ID键 return array_values($result); }
方案2:在函数外部处理结果
如果不想改动原函数,可在调用后直接处理返回值:
// 调用原函数得到带外层ID键的结果 $hierarchicalData = unflattenArray($flatCategories); // 移除外层ID键 $finalData = array_values($hierarchicalData); // 输出JSON echo json_encode($finalData);
修改后输出示例
处理后的数组转换为JSON后,结构会变成:
[ { "id": 1, "name": "父分类", "children": [...] }, { "id": 2, "name": "子分类", "children": [...] } ]
内容的提问来源于stack exchange,提问作者CrACK
相关产品推荐
相关产品推荐

