php - 将数据添加到json

时间:2016-02-02 04:02:04

标签: php mysql json

我想知道在编码之前是否可以将新数据添加到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,添加新值然后再编码吗?

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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)

答案 2 :(得分: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);