2012-07-24 188 views
0

我是json的新手。我有一個文件中存在json數據。在這裏,它看起來像:PHP 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」嗎?到一個字符串。

任何人都可以幫忙嗎?

+2

只需使用$ data [「the_string_you_want」] = array(...); – yent 2012-07-24 09:32:42

回答

2

0是一個字符串,你可以告訴它,因爲它有引號。

但是,如果你想有一個不同的字符串,不要使用:

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

但:

$data['myKey'] = array(
    /* ... */ 
) 
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 
        ) 
       ); 
+0

謝謝!有用! ^^ – justin 2012-07-24 09:34:49

1

使用

$data["the_string_key"] = array(
    //... 
);