如何在php中将对象转换为数组数组?

时间:2011-12-02 20:39:32

标签: php jquery object multidimensional-array

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

所以,我有一个数据库查询结果,我做json_encode($result),然后我把它作为响应发送到jQuery帖子里面的success函数。

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

在PHP中

json_encode($results)

在javascript中:

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

在控制台日志中:

[>Object , >Object , >Object]

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分:1)

使用JQuery的Javascript:

  

jQuery.makeArray();

http://api.jquery.com/jQuery.makeArray/

答案 2 :(得分:0)

在php中,施放:

$ array =(array)$ object;

答案 3 :(得分:0)

json encode会将字符串编码为json OBJECT,它在javascript中是一个对象。在javascript中,数组只是一个具有特殊辅助函数的对象。不需要从对象创建数组,因为您可以像操作数组一样轻松地操作对象。