2016-02-02 100 views
0

我想知道在編碼之前新數據是否可以添加到JSON?php - 將數據添加到json

我檢索通過以下方式從MySQL數據庫中的數據:

//fetch the data from the database 
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $to_encode[] = $row; 
} 

,給了我這樣的:

[ 
    { 
     name: "aaa" 
    }, 
    { 
     name: "bbb" 
    } 
] 

然後我把它編碼成JSON有:

$array1 = json_encode($to_encode) 

我想知道在編碼之前是否可以將更多數據添加到數組中,使其成爲這樣?

[ 
    { 
     name: "aaa" 
     age: '5' 
    }, 
    { 
     name: "bbb" 
     age: '5' 
    } 
] 

,或者我應該解碼編碼的JSON,添加新的值,然後進行編碼回來?

+0

如果你檢索所有的從數據庫中的信息,這是更有效地使用連接語句即T他的姓名和年齡出現在一行中,並遍歷這些結果。 –

回答

1

簡單的,你可以這樣做:

//fetch the data from the database 
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $to_encode[] = $row; 
} 

for ($i = 0; $i < count($to_encode); $i++) { 
$to_encode[$i]['age'] = '14'; 
} 

$array1 = json_encode($to_encode); 
print_r($array1); 
+0

鍵'名稱',其值從數據庫中檢索。我只是想添加另一個關鍵值對與年齡相同的對象,例如 –

+0

@HardikVasa,我已經更新了我的答案。我不知道你將如何讓年齡變得動態。但我使用硬編碼的14.它可能會幫助你。 –

1

嘗試是這樣的:

$i=0; 
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $to_encode[$i]["name"] = $row; 
    $to_encode[$i]["age"] = 5; 
    $i++; 
} 
$array1 = json_encode($to_encode) 
+0

這不起作用......它添加所有'名稱'鍵和它的值,然後在末尾添加一個'年齡'鍵值 –

+0

查看我的更新答案。 –

+0

加一...這個也工作了......謝謝!! –

0

您可以把一個數組的$ row變量,這個想法是你之前建立數組使用json_encode

$to_encode = []; 

while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) { 
    $age = array('age'=>5); 
    array_push($to_encode,$row); 
    array_push($to_encode,$age); 
} 

$array = json_encode($to_encode);