【问题标题】:PHP json_encode return rows as arrays instead of objectsPHP json_encode 将行作为数组而不是对象返回
【发布时间】:2011-07-10 22:22:26
【问题描述】:

根据我的经验,当我对 mysql 表中的数据进行 json_encode 编码时,输出是一个对象,其中包含作为对象的每一行。我想要做的是将每一行作为一个数组,如下例所示(不需要列名)。我该怎么做?

{ "Data": [
    ["1","Internet Explorer 4.0","Win 95+","4","X","1"],
    ["2","Internet Explorer 5.0","Win 95+","5","C","2"],
    ["3","Internet Explorer 5.5","Win 95+","5.5","A","3"],
    ["4","Internet Explorer 6","Win 98+","6","A","4"],
] }

【问题讨论】:

    标签: php javascript arrays json


    【解决方案1】:

    使用mysql_fetch_row [docs] 获取每一行。这将得到一行作为数字数组,并且这些也被编码为 JSON 数组:

    $data = array();
    
    while(($row = mysql_fetch_row($result))) {
        $data[] = $row;
    }
    
    echo json_encode(array('Data' => $data));
    

    【讨论】:

    • $result 是在哪里定义的?
    • $result 是在哪里定义的? [2]
    • @FlipNovid: $result 是运行查询的结果。如果您查看我链接到的文档,您可以看到一个示例。
    【解决方案2】:

    未在解释器中检查: 你可以通过简单的类型转换来改变变量的类型:

    $data = DB::get('SELECT * FROM `table` WHERE 1');
    echo json_encode(array('Data' => (array)$data));
    

    你也可以使用下一个函数:array mysql_fetch_array (resource $result [, int $result_type ])

    【讨论】:

    • 数据库抽象。您可以将其用作 $data = mysql_fetch_array($mysql_result, MYSQL_NUM);只需将对象转换为数组。它必须有帮助。
    猜你喜欢
    • 2013-09-11
    • 2021-12-13
    • 2012-09-28
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多