2014-03-25 142 views
0

我需要將動態數組轉換爲以下格式。我只是張貼樣品將php數組轉換爲unicode json

{u'v2':{0:u'No',1:u'Yes'}, u'v3':{1:u'Maybe',3:u'Almost'}} 

這是我做過什麼:

$valLabels = array(); 
$valLabelTemp1 = array(); 
$valLabelTemp2 = array(); 

$valLabelTemp1['v2'][0] = 'No'; 
$valLabelTemp1['v2'][1] = 'Yes'; 
$valLabels = $valLabelTemp1; 

$valLabelTemp2['v3'][0] = 'Maybe'; 
$valLabelTemp2['v3'][1] = 'Almost'; 
$valLabels = $valLabelTemp2; 

當我寫上面的一個文本文件:

的fwrite($跳頻,json_encode($ valLabels)。「\ n」);

我得到以下輸出:

{"v2":["No","Yes"],"v3":["Maybe","Almost"]} 

我逼債希望上述格式。另外我需要加上'U'來表示unicode。我不知道我該怎麼做格式。提前謝謝。

+1

JSON沒有對字符串(這是針對Python據我所知)一個'u'前綴,爲什麼你需要嗎? – 2014-03-25 06:44:47

+0

RC,Spot on !!! ...我需要它在Python腳本上運行spss轉換。 – madi

+0

python瞭解標準json(請參閱'json'模塊),不需要'u'。 – 2014-03-25 06:49:37

回答

3

你可以做這樣的事情:

<?php 

$valLabels = array(
    'v2' => array('1' => 'Yes', '0' => 'No'), 
    'v3' => array('1' => 'Maybe','3' => 'Almost') 
); 

echo json_encode($valLabels); 

輸出:

{"v2":{"1":"Yes","0":"No"},"v3":{"1":"Maybe","3":"Almost"}} 

NB:我們需要恢復(這並不在JSON結果物質)v2數據otherwise PHP做某種智能類型轉換,並且你鬆散索引。

Demo

+0

首先,我想感謝您的快速回復。我需要的是關鍵是整數,而不是字符串。在你的情況下,0的鍵是「0」,而我需要的鍵是0. – madi

+1

json是一個鍵,字符串鍵值存儲,請參閱http://www.json.org/ – 2014-03-25 07:04:04

+1

做好了恢復'v2'。我只是擺弄這個,意識到'v2'總是作爲一個數組輸出而不是一個對象。即使我將索引設置爲字符串...有時我很不喜歡PHP :-D – Havelock