2012-03-09 2 views
1

json 객체를 통해 사용자를 출력하고 싶지만 노래 목록을 출력하려고 할 때 마지막으로 출력합니다. 이 목록을 배열로 가져오고 싶습니다.PHP json_encode가 올바른 결과를 출력하지 않습니다.

[{"username":"asdfasdfasd","id":{"$id":"4f58d7227edae19c02000000"},"songs":{"title":"song2"}}] 

내가 출력을 원하는 사용자를 통해

array_push($arrayUsers, array(
       'username' => $user['username'], 
       'id' => $user['_id'], 
       'favSongs' => array(
        'title' =>'song1', 
        'title' =>'song2' 
        ) 
       ) 
     ); 

을 반복하면서

내 배열 밀어 그러나 이것은 내가 (없는 노래 제목) 돌아갈 것입니다 같은 노래

"songs":[{"title": "song1"}, {"title": "song2"}] 
+1

'배열 ('제목'=> 'song1', '제목'=> 'song2')'유효한 배열이 아닌 - 또는 오히려 유효하지만 당신은 항상없이 동일한 키의 두를 가질 수 없습니다 하나를 덮어 씁니다. –

+0

그 대신에,''favSongs '=> 배열 ('song1 ','song2 ')' –

+1

오하이오에 대해 일반 숫자 배열을 사용하면됩니다. 덕분에 나는 이것을 시도하고'array_push ($ arrayUsers, array ('username'=> $ user [ 'username'], 'id'=> $ user [ '_ id'], 'favSongs'=> array (array 'title'=> 'song1'), array ('title'=> 'song3')))))' – jamcoupe

답변

3
'favSongs' => array(
    'title' => 'song1', 
    'title' => 'song2' 
) 
:하지만이 PHP를 사용하여 얻을하는 방법을 혼란 스러워요

PHP는 'title'키를 마지막으로 선언 된 키로 대체합니다.

"songs":[{"title": "song1"}, {"title": "song2"}] 

이것은 객체의 배열이므로 PHP에서는 배열의 배열이어야합니다.

'favSongs' => array(
    array('title' => 'song1'), 
    array('title' => 'song2') 
) 
관련 문제