添加 JSON 元素到多维 JSON 对象 PHP

Add JSON Element To Multidimensional JSON Object PHP

我在名为 info.json 的文件中有一个 JSON 对象,它看起来像这样 -->

[
    {
        "name": "level0",
        "items": 
            [
                {
                    "name": "item1",
                    "type": "type1"
                },
                {
                    "name": "item2",
                    "type": "type2"
                }

            ]
    },
    {
        "name": "Level1",
        "items":
            [
                {
                    "name": "item4",
                    "type": "type4"
                },
                {
                    "name": "item5",
                    "type": "type5"
                }
            ]
    },
    {
        "name": "Level2",
        "items":
            [
                {
                    "name": "item6",
                    "type": "type6"
                }

            ]
    }
]

和一个看起来像这样的 php 脚本 -->

<?php

    $json_string = file_get_contents("info.json");
    $json = json_decode($json_string, true);

    array_push($json[0]["items"], array("name" => "item3", "type" => "type3"));
?>

我试图在此数组中 "items" 的第一个实例中插入第三个元素,这样当我打开 JSON 文件时,新元素就会出现。我究竟做错了什么?如有任何建议,我们将不胜感激。

我觉得你的代码没问题。输出 $json 变量,您将能够看到您想要的结果。

print(json_encode($json, JSON_PRETTY_PRINT));

我给你做了一个样本:https://eval.in/818486

希望这对您有所帮助:)

更改 $json 数组后,您需要将其保存到 info.json 文件中,

file_put_contents("info.json", json_encode($json));

你好,laroy,你没有正确地将新的 json 编码字符串写入文件,所以你的代码看起来像这样

<?php

$json_string = file_get_contents("info.json");
$json = json_decode($json_string, true);
array_push($json[0]["items"], array("name" => "item3", "type" => "type3"));
$strNew = json_encode($json);
file_put_contents("info.json", $strNew);

?>

现在您可以查看 info.json 文件。