2012-06-05 54 views
5

我想是能夠產生在以下格式的JSON輸出:關聯數組到JSON

{"a":{"ax":1,"abx":2},"b":{"bax":1,"bbx":2},"c":3,"d":4,"e":5} 

雖然我已經發現,相應的代碼是這樣的:

$arr = array('a' => array('ax' => 1, 'abx' => 2), 'b' => array('bax' => 1, 'bbx' => 2), 'c' => 3, 'd' => 4, 'e' => 5); 

,我努力通過使用來自sql查詢的數據來生成這個輸出。我曾嘗試array_push()和array_merge()和我設法得到最接近的是這樣的:

[{"a":{"ax":1,"abx":2}},{"b":{"bax":1,"bbx":2}}, ....] 

任何想法?

+3

[Documentation:Read it。愛它。使用它。](http://www.php.net/manual/en/ref.json.php) – 2012-06-05 00:25:39

+0

你問如何讓你的SQL查詢結果格式化爲PHP數組,或者你在問如何使用'json_encode'? –

+1

顯示您的編碼嘗試。你試過簡單的'$ output [「L」] = $ sql_result;'而不是'array_push'嗎? – mario

回答

2

將要編碼的數據載入數組,然後使用json_encode()

json_encode($arr); 
+2

OP大概知道這個功能。問題是關於解釋'$ arr'變量。 – mario

+4

「OP大概知道這個功能。」 「反對,你的榮譽!推定事實不成事實!」 「持續。」 – 2012-06-05 00:31:27

+0

手銬!將犯人送入手動監獄。一致的陪審團決定! – mario

13

首先,你應該從查詢表中的所有數據,然後將其移動到一個數組,在此之後,使用json_encode($array)功能。

將您的數組放入參數中。

然後輸出將以json形式呈現。

$query="select * from employees"; 
$result=mysql_query($query); 
while($row=mysql_fetch_array($result)) 
{ 
    $employee=$row['employee']; 
    $country=$row['country']; 

    $employees[] = array('employee'=> $employee,'country'=> $country); 
} 

echo $jsonformat=json_encode($employees);