You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP多层级数组转JSON多余方括号问题求助

解决JSON输出中多余的嵌套方括号问题

咱们来快速定位问题:你当前输出里多出来的第二层方括号,根源在代码的Step 2部分。

你看,$tabContent本身就是在do-while循环里构建的数组——每次循环都会把一个包含name和titel的数组push进去,所以它最终是一个包含多个对象的数组。但你在Step 2里又把它包进了一个新数组array( $tabContent ),这就导致JSON序列化后多了一层嵌套的方括号。

修改方案

只需要把Step 2的代码改成直接将$tabContent赋值给$tabelled['repositories'],不需要额外包裹数组:

## Step 1 #################
do{
    $tabContent[] = array (
        "name" => $row_profile['name'],
        "titel" => $row_profile['titel']
    );
}while ($row_profile = $statement_profile->fetch(PDO::FETCH_ASSOC));

## Step 2 #################
// 去掉外层的array()包裹,直接赋值$tabContent
$tabelled['repositories'] = $tabContent;

## Step 3 #################
header('Content-Type: application/json');
echo json_encode($tabelled, JSON_PRETTY_PRINT);

修改后的输出

这样调整后,生成的JSON就会符合你的期望:

{
    "repositories": [
        {
            "name": "test",
            "titel": "a sdfaf"
        },
        {
            "name": "Frank wieder",
            "titel": "test test"
        }
    ]
}

简单来说就是:$tabContent已经是你需要的数组结构了,不用再给它套一层数组壳~

内容的提问来源于stack exchange,提问作者Pippo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:18:44