2016-12-06 16 views
0

から取得されたJSONエンコードデータをフォーマットするにはどうすればいいですか?グループPHPを使用してJSONとしてエンコードされたデータベースデータ

私はテキストを持っている現在の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

クリアするには、最初のものが有効で、2番目のものは有効ではありません。 2番目に何が起こっているのですか?番号を付けたいだけですか、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で思う)。

データベース・エントリからインデックスをしたい場合は、あなたがそのように上JSONでそれを解析して、あなたのSELECT SQLクエリを改善し、IDを取得する必要があるかもしれません...

関連する問題