0

我无法获得我需要的 json_encode 格式。

当前格式:

{
    "substantiv": [
        {"text":"auto"},
        {"text":"noch ein auto"}
    ],
    "verben":[
        {"text":"auto fahren"}
    ]
}

我需要的:

[
    {
        "type":"substantiv",
        "items": [
            {"text":"auto"},
            {"text":"noch ein auto"}
        ]
    } , {
        "type":"verben",
        "items": [
            {"text":"auto fahren"}
        ]
    }
]

我当前的php代码:

$data = array();
while($row = $rs->fetch_assoc()){
    $tmp = array(
        "text" => $row['gtext']
        );

    $data[$row['type']][] = $tmp;
}
echo json_encode($data);

我已经尝试了几件事,但就是想不通。

4

2 回答 2

3

你可以试试这样的

while($row = $rs->fetch_assoc()){
    $data[$row['type']][] = array(
        "text" => $row['gtext']
    );
}

$result = array();
foreach($data AS $type => $items) {
    $result[] = array(
        'type' => $type,
        'items' => $items
    );
}

echo json_encode($result);
于 2013-10-16T08:43:47.647 回答
2

你真正想要的是这样的:

[
    {
        "type": "substantiv",
        "items": [
            {
                "text": "auto"
            },
            {
                "text": "noch ein auto"
            }
        ]
    },
    {
        "type": "verben",
        "items": [
            {
                "text": "auto fahren"
            }
        ]
    }
]

这是您将从 Louis H. 的答案代码中获得的输出。

于 2013-10-16T08:45:06.123 回答