0

私はjsonが初めてです。ファイルに既存のjsonデータがあります。ここでは次のようになります。

{

    "qwqw":{
        "id":3,
        "item1":{
            "id":15,
            "price":31.85
        },
        "item2":{
            "id":17,
            "price":26
        },
        "item3":{
            "id":16,
            "price":57.85
        }
    }
}

json_decode を使用してこの値を取得できます。このコードを使用して別のエントリを追加します。

$data = json_decode( file_get_contents('test.ini'), true );
$data[] = array(
                    'id'=>4,
                    'item1'=>array(
                        'id'=>15,
                        'price'=>11
                    ), 
                    'item2'=>array(
                        'id'=>17,
                        'price'=>12
                    ),
                    'item3'=>array(
                        'id'=>16,
                        'price'=>13.50
                    )
                );

file_put_contents('test.ini', json_encode($data) );

これは適切に機能します。もう一度デコードしたとき。このように見えます。

     {

        "qwqw":{
            "id":3,
            "item1":{
                "id":15,
                "price":31.85
            },
            "item2":{
                "id":17,
                "price":26
            },
            "item3":{
                "id":16,
                "price":57.85
            }
        },

         "0":{
            "id":3,
            "item1":{
                "id":15,
                "price":11
            },
            "item2":{
                "id":17,
                "price":12
            },
            "item3":{
                "id":16,
                "price":13.5
            }
        }
    }

私の問題は、値「0」を変更できますか? 文字列に。

誰が助けることができますか?

4

3 に答える 3

2

0 はここの文字列です。引用符で囲まれているのでわかります。

ただし、別の文字列が必要な場合は、使用しないでください。

$data[] = array(
   /* ... */
)

しかし:

$data['myKey'] = array(
   /* ... */
)
于 2012-07-24T09:32:44.990 に答える
1

はい、できます

$data['string'] = array(
                    'id'=>4,
                    'item1'=>array(
                        'id'=>15,
                        'price'=>11
                    ), 
                    'item2'=>array(
                        'id'=>17,
                        'price'=>12
                    ),
                    'item3'=>array(
                        'id'=>16,
                        'price'=>13.50
                    )
                );
于 2012-07-24T09:32:54.493 に答える
1

使用する

$data["the_string_key"] = array(
   //...
);
于 2012-07-24T09:33:16.613 に答える