2016-06-25 14 views
0

Ich versuche, ein JSON-Objekt innerhalb der JSON-Objekt zu machen. Das JSON-Objekt ich machen wollen ist:Erstellen eines JSON-Objekts innerhalb JSON-Objekt mit PHP effizient

{"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"}}" 

Was ich schließlich tun möchte, ist ein JSON-Objekt zu erstellen, wie Sie oben sehen, und es zusammen mit dem vorderen Ende passieren. Und die Daten sind das Ergebnis der SQL-Abfrage. Jedes "innere" json-Objekt wird aus der Abfrage abgerufen. Irgendwelche Tipps, wie ich das schaffen soll? Ich würde einige effiziente Lösungen dafür lieben. Ich dachte daran, für eine Schleife in einer for-Schleife zu tun, aber besorgt über die Effizienz.

EDIT: Ich versuche, json_encode zu verwenden, um dies zu erreichen, aber ich bin mir nicht sicher, wie dies zu implementieren ist. Was ich bisher versucht habe ist 1) Create JSON object using PHP (erstellt eine Klasse und gibt die Daten ein). Ich mag diese Methode wirklich, weil sie eine separate Klasse erstellt, so dass sie modularer ist, aber ich finde einfach keinen Weg, 4 verschiedene Beiträge zu erstellen.

+1

Möge Gott Ihnen helfen. Weil wir Menschen sind. Sie müssen Ihre anfänglichen Daten zusammen mit Ihrem Code-Aufwands-Manager veröffentlichen. Dies ist keine vollständige Code-Provider-Plateform –

+0

* json_encode() * kann Ihnen helfen. '$ json_data = json_encode ($ prepared_array);' – MH2K9

Antwort

1

Wenn jedes innere Objekt eine Ergebnismenge aus der SQL-Abfrage ist, dann brauchen Sie nur eine einzige for-Schleife, um eine Art JSON-Zeichenfolge zu erzeugen.

Haupt Array erstellen

$main_array=array(); 

nun wie folgt resultieren aus MySQL iterieren und fügen Sie sie in Hauptarray.

/* 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); 

Ich denke, das ist die beste Lösung, in der Sie die erforderliche JSON-Zeichenfolge erstellen können.

+0

op kennt bereits 'json_encode' Lösung, er sucht nach einer effizienteren Lösung .. aus Frage: _Ich sollte ein Array innerhalb eines Arrays haben und dann json_encode verwenden. Aber auf der Suche nach etwas effizienteren Lösung_ :) –

+0

Kann er verschiedene Methoden verwenden, um 'Array innerhalb eines Arrays 'zu erstellen? Mal sehen, ob das hilft oder nicht. –

+0

das war die Antwort die ich suchte! Um jedoch das Json-Objekt zu erstellen, das ich machen möchte, benötigt es 2d-Array mit dieser Antwort. Irgendwelche Vorschläge, um die Leistung zu verbessern? –

Verwandte Themen