将其他对象添加到JSON编码阵列

Dod*_*nas 8 javascript php arrays json

我目前正在使用JSON编码数组来显示我的数据库中的用户以获得自动建议功能.

它看起来像这样:

$sth = mysql_query("SELECT id, name FROM users");

$json = array();

    while($row = mysql_fetch_assoc($sth)) {
        $json['name'] = $row['name'];
        $json['id'] = $row['id'];
        $data[] = $json;
    }

print json_encode($data);
Run Code Online (Sandbox Code Playgroud)

返回:

[{"id":"81","name":"John Doe"},{"id":"82","name":"Jane Doe"}]
Run Code Online (Sandbox Code Playgroud)

我的问题有点双重:

首先,如何手动向此输出添加其他对象?例如,假设我想添加: {"id":"444","name":"A New Name"}

因此,它看起来像:

[{"id":"81","name":"John Doe"},{"id":"82","name":"Jane Doe"},{"id":"444","name":"A New Name"}]
Run Code Online (Sandbox Code Playgroud)

其次,假设我也想从单独的表中向数组中添加更多对象,例如:

$sth = mysql_query("SELECT id, title FROM another_table");

$json = array();

    while($row = mysql_fetch_assoc($sth)) {
        $json['name'] = $row['title'];
        $json['id'] = $row['id'];
        $data[] = $json;
    }

print json_encode($data);
Run Code Online (Sandbox Code Playgroud)

这样我可以在JSON数组中填充两个表,因此,在我的autosuggest中显示为其他选项.

希望这是有道理的,因为我已经努力表达我想要完成的事情.

谢谢!

med*_*iev 13

继续推动$data阵列.

$json = array();

    while($row = mysql_fetch_assoc($sth)) {
        $json['name'] = $row['name'];
        $json['id'] = $row['id'];
        $data[] = $json;
    }

$custom = array('name'=>'foo', 'id' => 'bar');
$data[] = $custom;
Run Code Online (Sandbox Code Playgroud)

然后在最后,做你的json_encode.假设你没有提到在JS本身中将它与多个ajax调用合并.

如果您有单独的脚本,请将它们组合在一个php页面中.