2014-02-18 81 views
0

我在格式化方面很糟糕,也許我有一個糟糕的基礎。我有這樣將數組推入JSON,但得到了不想要的結果

'first_name'=>'steve', 'msg'=>'something here','profile_id'=>1 

一個JSON,我想推一個新的項目到它,我寫

$i = array('first_name'=>'steve', 'msg'=>'something here','profile_id'=>1); 
$loginId = array($_GET['login_id']); 
array_push($i,$loginId); 

echo json_encode($i); 

我得到的結果是奇怪:

+0

什麼'$ loginId'的價值? – Vainglory07

+0

@ Vainglory07 steve_job – user3318525

+0

那麼你想怎麼做呢?把它放在數組裏面? – Vainglory07

回答

0
$i = array('first_name'=>'steve', 'msg'=>'something here','profile_id'=>1); 
$loginId = $_GET['login_id']; 

$i['login_id']=$loginId;  
echo json_encode($i); 

array_push無法正常工作的原因是因爲您將$ i視爲對象的數組(集合)(數組),而它只是一個鍵值列表(地圖)。

如果數組類似於K1 => V1,K2 => V2,則使用$ arr [K3] = V3添加另一對。 array_push($ arr,(k3,v3));如果數組類似[[k1,v1],(k2,v2)],則array_push($ arr,(k3,v3));

+0

將來,使用print_r調試原始數組,而不是使用JSON進行編碼。 – Schien

+0

這項工作,但如何預先而不是追加? – user3318525

+0

@ user3318525它在數組中的位置是否重要?我很確定這沒有什麼區別。 –

0

你基本上將值$_GET['login_id']放在一個數組中,並試圖將它推入一個關聯數組中,所以你得到一個新的數字索引0持有一個嵌套數組,它反過來保存你的值。

如果你想被均勻地處理整個事情作爲關聯數組(或一次轉換成JSON對象),那麼你應該這樣做:

$i = array('first_name'=>'steve', 'msg'=>'something here','profile_id'=>1); 
$i['login_id'] = $_GET['login_id']; 
echo json_encode($i); 
相關問題