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 に答える