2013-08-25 17 views
12

Ho convertito un array PHP in JSON, utilizzando json_encode. Ho controllato la console e gli oggetti sono visualizzati in serie, ma come singoli oggetti.convertire l'array php in un singolo oggetto JSON

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

Come posso convertire questo array in un oggetto, in questo modo (in PHP o jQuery):

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

Edit: Ecco l'inizio della mia print_r per l'array di PHP:

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

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

cosa fa il tuo array PHP assomiglia? (Usa 'print_r'.) – Jublo

+1

Unisci semplicemente ognuno degli array interni in PHP o gli oggetti in JS. Meglio ancora, crea l'array nel formato corretto dall'inizio! –

+0

@ J.M. - Ho aggiunto l'inizio di come appare print_r. Grazie. – chowwy

risposta

24

Non abbiate paura di loop

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

See Live Demo

+0

Funziona come un fascino. Accettato e upvoted. Grazie! – chowwy

+0

Prego – Baba

+0

Salvato anche la mia giornata .. Grazie mille – zeetit

7

In generale, è necessario preparare un tale array PHP, che dovrebbe quindi essere json_encode e trasferito al server:

$data = array(

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

); 

echo json_encode($data); 
exit; 
1

Si vorrà eseguire un'iterazione sull'array indicizzato rendendo le chiavi di un array associativo in esso contenute in chiavi in ​​un secondo array associativo.

Presupposto: si sta iniziando con una stringa JSON e si desidera terminare con una stringa JSON.

Attenzione: se si incontrano duplicati si sovrascriverà.

Ecco un esempio di cosa sto parlando:

<?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"; 
?> 
Problemi correlati