2016-12-06 75 views
0

是否有任何格式的JSON編碼數據是從 mysql數據庫,索引?組數據庫數據編碼爲JSON使用PHP

目前的JSON我有文字:

[{"category_id":"1","category_name":"Luarb1"},{"category_id":"2","category_name":"Luarb2"}] 

如何我希望它被格式化:

{"1":[{"category_id":"1","category_name":"Luarb1"}], "2":[{"category_id":"2","category_name":"Luarb2"}]} 
+0

這不是一個有效的JSON – Federkun

+0

@Federkun打招呼,該json被回顯使用:\t $ row = $ stmt-> fetchAll(PDO :: FETCH_ASSOC); return \t json_encode($ row); –

+1

要清楚,第一個是有效的,第二個不是。第二階段發生了什麼 - 你是否希望他們編號,或者是否希望category_id作爲每個條目的前綴? – WillardSolutions

回答

0
<?php 

// init variables 
$arr = '[{"category_id":"1","category_name":"Luarb1"},{"category_id":"2","category_name":"Luarb2"}]'; 
$new = []; 

// decode JSON array 
$decoded = json_decode($arr); 

// create the new array to be encoded 
$i = 1; 
foreach ($decoded as $cur) { 
    $new[$i++] = [$cur]; 
} 

// encode the new array 
$encoded = json_encode($new); 

// test if everything worked 
var_dump($encoded); 

// tests.php:15:string '{"1":[{"category_id":"1","category_name":"Luarb1"}],"2":[{"category_id":"2","category_name":"Luarb2"}]}' (length=103) 

這是我如何解決你的問題,我沒有成功在0開始數組鍵,但你想成爲在1我認爲)。

如果你想從數據庫錄入項指標,你可能需要提高你的SELECT SQL查詢和檢索ID,然後解析它在JSON等等...