我有一个jQuery帖子,返回了一些对象。

因此,我有一个执行json_encode($result)的数据库查询结果,然后将其作为响应发送到jQuery帖子内的success函数中。

如果我console.log响应,我会看到多个对象。我想要的是将响应作为数组数组发送。

在PHP中

json_encode($results)


在javascript中:

success: function(json) {
  console.log(json);
}


在控制台日志中:

[>Object , >Object , >Object]


有任何想法吗?

最佳答案

您在php中的$results是对象数组或关联数组。在进行强制转换发送之前,使其成为一个数字索引数组的数组:

// ASSUMING each $result object does not have its own nested arrays
foreach ($results as &$result) {
    $result = array_values((array) $result);
}


请注意,您将失去按列名获取项目的功能。

但请退后一步,思考一下您的$结果来自何处。

如果您使用的是mysql驱动程序,请在构建结果时考虑这样做:

$results = array();
// Note we use MYSQL_NUM option, so $row looks like array('col1value', 'col2value')
while (FALSE !== ($row = mysql_result_array($resource, MYSQL_NUM))) {
    $results[] = $row;
}

json_encode($results);

09-10 01:23
查看更多