2013-08-25 10 views
12

Ich konvertierte ein PHP-Array in JSON, mit json_encode. Ich habe die Konsole überprüft, und die Objekte werden im Array angezeigt, aber als einzelne Objekte.konvertieren PHP-Array in einzelne JSON-Objekt

[ { Object { 03-13-2012="Jazz"}, Object { 07-19-2012="Pop"}, ... ] 

Wie kann ich konvertieren dieses Array in einem Objekt, wie folgt aus (in PHP oder jQuery):

Object { 03-13-2012="Jazz", 07-19-2012="Pop"} 

Edit: Hier ist der Anfang meiner print_r für die PHP-Array:

Array 
(
    [0] => Array 
     (
      [03-13-2012] => Jazz 
     ) 

    [1] => Array 
     (
      [07-19-2012] => Pop 
     ) 
) 
+3

Was ist Ihre PHP-Array aussehen? (Verwenden Sie 'print_r'.) – Jublo

+1

Verschmelzen Sie einfach jedes der inneren Arrays in PHP oder die Objekte in JS. Besser noch, erstelle das Array von Anfang an im richtigen Format! –

+0

@ J.M. - Ich habe den Anfang von dem, wie die print_r aussieht, hinzugefügt. Vielen Dank. – chowwy

Antwort

24

Fürchte dich nicht von Schleifen

$output = array(); 
foreach($data as $v) { 
    $output[key($v)] = current($v); 
} 
echo json_encode($output, 128); 

See Live Demo

+0

Funktioniert wie ein Charme. Akzeptiert und Upvoted. Vielen Dank! – chowwy

+0

Sie sind willkommen – Baba

+0

Gespeichert mein Tag auch .. Vielen Dank – zeetit

7

Im Allgemeinen müssen Sie ein solches PHP-Array vorbereiten, das dann json_encode sein und an den Server weitergeleitet werden sollte:

$data = array(

    '03-13-2012' => 'Jazz', 
    '07-19-2012' => 'Pop', 

); 

echo json_encode($data); 
exit; 
1

Sie möchten über das indizierte Array iterieren, indem Sie die Schlüssel eines darin enthaltenen assoziativen Arrays zu Schlüsseln in einem zweiten assoziativen Array machen.

Annahme: Sie beginnen mit einer JSON-Zeichenfolge, und Sie möchten mit einer JSON-Zeichenfolge enden.

Warnung: Wenn Duplikate auftreten, überschreiben Sie.

Hier ist ein Beispiel dafür, was ich spreche:

<?php 
$foo = json_decode('[{"abc":"A123"},{"xyz":"B234"}]'); 
$bar = array(); 
foreach ($foo as $f) { 
     foreach ($f as $k => $v) { 
       $bar[$k] = $v; 
     } 
} 

echo json_encode($foo)."\n"; 
echo json_encode($bar)."\n"; 
?> 
Verwandte Themen