2012-06-05 10 views
5

Ich mag wäre in der Lage sein, einen json Ausgang im folgende Format erzeugt:Assoziativ-Array zu Json

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

Obwohl ich festgestellt, dass der entsprechende Code ist folgende:

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

, I Ich bemühe mich, diese Ausgabe zu generieren, indem ich Daten aus einer SQL-Abfrage verwende. Ich habe versucht, array_push() und array_merge() und die nächstgelegene ich es geschafft haben, zu erhalten, ist dies:

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

Irgendwelche Ideen?

+3

[Dokumentation: Lesen Sie es. Liebe es. Verwenden Sie es.] (Http://www.php.net/manual/en/ref.json.php) –

+0

Fragen Sie, wie Sie Ihre SQL-Abfrageergebnisse wie dieses PHP-Array formatieren können, oder fragen Sie nach der Verwendung 'json_encode'? –

+1

Zeigen Sie Ihre Codierungsversuche an. Hast du einfach '$ output [" L "] = $ sql_result;' anstelle von 'array_push' versucht? – mario

Antwort

2

Laden Sie die Daten, die Sie kodieren möchten, in ein Array und verwenden Sie dann json_encode().

json_encode($arr); 
+2

OP weiß vermutlich über diese Funktion. Bei der Frage geht es darum, die Variable $ arr zu konstruieren. – mario

+4

"OP weiß vermutlich über diese Funktion." "Einspruch, Euer Ehren! Voraussetzen, dass Fakten nicht bewiesen sind!" "Nachhaltig." –

+0

Handschellen! Schicke den Verurteilten in das manuelle Gefängnis. Einstimmige Juryentscheidung! – mario

13

Zuerst sollten Sie alle Ihre Daten aus der Tabelle abfragen, und verschieben Sie es dann auf ein Array, nach diesem, verwenden json_encode($array) Funktion.

Platzieren Sie Ihr Array innerhalb der Parameter.

Dann wird Ausgabe in Json-Form sein.

$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);