2016-06-25 21 views
0

jsonオブジェクト内にjsonオブジェクトを作成しようとしています。私が作ることを望む JSONオブジェクトは、次のとおりです。jsonオブジェクト内にjsonオブジェクトを効率的に作成する

{"post1" : {"id" : "1", "brand" : "brandFromQuery", "model" : "modelFromQuery"}, 
"post2" : {"id" : "2", "brand" : "brandFromQuery", "model" : "modelFromQuery"}, 
"post3" : {"id" : "3", "brand" : "brandFromQuery", "model" : "modelFromQuery"}, 
"post4" : {"id" : "4", "brand" : "brandFromQuery", "model" : "modelFromQuery"}}" 

は私が最終的にやりたいことは、あなたが上記を参照としてJSONオブジェクトを作成し、フロントエンドに沿って、それを渡すことです。データはSQLクエリの結果です。各「内部」jsonオブジェクトはクエリからフェッチされます。どのように私はこれを作成する必要があります上の任意のヒント? これにはいくつかの効率的なソリューションが大好きです。私はforループでforループを行うことを考えていましたが、効率については心配していました。

EDIT: これを達成するためにjson_encodeを使用しようとしていますが、これを実装する方法がわかりません。私がこれまでに試したことは、 1)Create JSON object using PHP です(クラスを作成してデータを入力します)。私は本当にこのメソッドが好きです。なぜなら、別のクラスを作成しているため、モジュール化されていますが、ちょうど4つの異なる投稿を作成する方法があるようです。

+1

5月神があなたを助けます。私たちは人間だから。あなたはあなたのコード努力人と一緒にあなたの最初のデータを投稿する必要があります。これは完全なコードプロバイダではありませんplateform –

+0

* json_encode()*お手伝いができます。 '$ json_data = json_encode($ prepared_array);' – MH2K9

答えて

1

各内部オブジェクトがSQLクエリの結果セットである場合は、JSON文字列の種類を作成するために単一のfor-loopが必要です。

次のようにMySQLのからの結果を反復処理すると、メインアレイにそれらを追加するメインアレイ

$main_array=array(); 

を作成します。

/* Your MySQL logic to fetch result */ 
$count=1; 
while($row = $result->fetch_assoc()) { // assuming fetch method, you can replace it with yours. 
    $main_array["post".$count]=$row; 
    $count++; 
} 

$json_string=json_encode($main_array); 

これは、必要なJSON文字列を作成できる最適なソリューションだと思います。

+0

opは既に 'json_encode'ソリューションを知っています。彼はより効率的なソリューションを探しています。質問から:_I配列内に配列があり、次にjson_encodeを使用する必要があります。しかし、より効率的な解決策のビットを探して:) _ –

+0

彼は '配列内の配列'を作成するために別の方法を使用している可能性がありますか?これが助けになるかどうかを見てみましょう。 –

+0

これは私が探していた答えでした!しかし、作成しようとするjsonオブジェクトを作成するには、この答えを使用して2次元配列が必要です。パフォーマンスを改善するための提案はありますか? –

関連する問題