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



我有一个jQuery post返回一些对象。

所以,我有一个DB查询结果,我做json_encode($result),然后我发送它作为响应在success函数在jQuery post。

如果我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);
}

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

但是请退一步想想你的$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);

In Javascript with JQuery:

jQuery.makeArray ();

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

php中:

$aArray = (array) $oObject;

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

相关内容

  • 没有找到相关文章

最新更新