【问题标题】:how to convert objects to an array of arrays in php?如何在php中将对象转换为数组?
【发布时间】:2012-01-11 20:06:58
【问题描述】:

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

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

如果我控制台记录响应,我会看到多个对象。我想要的是将响应作为数组数组发送。

在 PHP 中

json_encode($results)

在javascript中:

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

在控制台日志中:

[>Object , >Object , >Object]

有什么想法吗?

【问题讨论】:

    标签: php jquery object multidimensional-array


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在带有 JQuery 的 Javascript 中:

      jQuery.makeArray();

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

      【讨论】:

        【解决方案3】:

        在 php 中,强制转换:

        $aArray = (数组) $oObject;

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2022-01-14
            • 2010-12-24
            • 1970-01-01
            • 2015-12-10
            • 1970-01-01
            • 1970-01-01
            • 2019-01-08
            • 2011-04-30
            • 2012-02-28
            相关资源
            最近更新 更多