2017-06-19 16 views
2

にJSON要素を追加します - >私はこのようになりますinfo.jsonというファイルにJSONオブジェクトを持つ多次元JSONオブジェクトPHP

[ 
    { 
     "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」の最初のインスタンスに3番目の要素を挿入しようとしています。そのため、JSONファイルを開くと新しい要素が表示されます。私は間違って何をしていますか?アドバイスをいただければ幸いです。

+0

上記のコードでどのような出力が得られますか? –

+0

あなたの問題は何ですか? –

+0

$ jsonの値はですが、ファイル自体は変更されません。 – laroy

答えて

1

をあなたは$json配列を変更した後は、あなたがこれを使用してinfo.jsonファイルに保存する必要があり、

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

あなたのコードは私にはうまく見えます。 $json変数を出力すると、目的の結果が表示されます。

print(json_encode($json, JSON_PRETTY_PRINT)); 

私はあなたのためにサンプルを作った:https://eval.in/818486

・ホープ、このことができます:)

0

こんにちはあなたのコードは、この

01のようになりますので、あなたがファイルに新しいJSONエンコード文字列を右していないlaroy
<?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ファイルを確認することができます。

関連する問題