2013-08-25 22 views
12

Przekształciłem tablicę PHP w JSON, używając json_encode. Sprawdziłem konsolę, a obiekty wyświetlają się w tablicy, ale jako pojedyncze obiekty.Konwertuj tablicę php na pojedynczy obiekt JSON

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

Jak mogę przekonwertować tej tablicy w jeden obiekt, tak (w PHP lub jQuery):

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

Edycja: Oto początek mojej print_r na tablicy PHP:

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

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

Co twoja tablica PHP wyglądać? (Użyj 'print_r'.) – Jublo

+1

Po prostu połącz wszystkie wewnętrzne tablice w PHP lub obiekty w JS. Co więcej, od razu utwórz tablicę we właściwym formacie! –

+0

@ J.M. - Dodałem początek tego, jak wygląda print_r. Dzięki. – chowwy

Odpowiedz

24

Nie bój pętli

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

See Live Demo

+0

Działa jak urok. Zaakceptowano i wznowiono. Dzięki! – chowwy

+0

Serdecznie zapraszam – Baba

+0

Zapisałam też dzień. Wielkie dzięki – zeetit

7

Ogólnie rzecz biorąc, należy przygotować taką tablicę PHP, która następnie powinna być json_encode i przekazana do serwera:

$data = array(

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

); 

echo json_encode($data); 
exit; 
1

Będziesz chciał powtórzyć indeksowaną tablicę, tworząc klucze tablicy asocjacyjnej w nich znalezionej do kluczy w drugiej tablicy asocjacyjnej.

Założenie: Zaczynasz z ciągiem JSON, a chcesz zakończyć ciągiem JSON.

Ostrzeżenie: w przypadku wystąpienia duplikatów nastąpi nadpisanie.

Oto przykład tego, co mówię:

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