3

这是我的php代码

function GetTransactionList($data)
{
    // DB transaction   
    $records = array();
    while($row = mysql_fetch_array($result))
        array_push($records, $row);

    echo json_encode(array("IsError" => false, "Records" => $records));

}

这是我在 php 的 ajax 调用中的 json 响应

{
    IsError:false,
    Records:[
            {0:1,
             1:1000,
             2:0,
             3:"Peacock India trial payment",
             4:"2013-08-03",
             5:1,
             TransactionID:1,
             Credit:1000,
             Debit:0,
             Reason:"Peacock India trial payment",
             TransactionDate:"2013-08-03",
             TransactionByUserID:1
            }]
}

在这里我得到了我的结果,但是 json_encode() 方法对每一行编码两次,首先它通过 index=>value 对设置值,第二次通过 column_name=>value 对进行编码。我想知道为什么会这样?有什么办法可以减少这种双重工作。?我只希望json响应如下方式

{
    IsError:false,
    Records:[
            {TransactionID:1,
             Credit:1000,
             Debit:0,
             Reason:"Peacock India trial payment",
             TransactionDate:"2013-08-03",
             TransactionByUserID:1
            }]
}
4

2 回答 2

2

不,它没有,它mysql_fetch_array为您提供了关联键和数字键。
如果您只想要关联键,请在函数中指定它mysql_fetch_array($result, MYSQL_ASSOC);

于 2013-08-25T14:35:06.813 回答
1

您可以使用mysql_fetch_assoc而不是mysql_fetch_array.

于 2013-08-25T14:43:50.480 回答