需要使用查询结果填充数组并使用json_encode这些结果(在codeigniter中)

时间:2014-09-08 14:43:03

标签: php arrays json loops foreach

我的查询工作正常并返回超过1000行。但是,当运行以下foreach循环时,只有第一行记录以JSON编码返回,并被识别为字符串而不是数组。

这是循环:

foreach ($query->result_array() as $row){
    $row['Client_Desc'];
    $row['Parent_Entity_Name'];
    $row['Entity_Name'];
    $row['trackbacknumber'];
    $row['external_reference'];
    $row['effective_start_date_time'];
    $row['effective_end_date_time']."<br />";
}
var_dump(json_encode($row, TRUE));

返回的结果如下:....

string '{"Client_Desc":"FGA-Italy","Parent_Entity_Name":"Fiat Italy","Entity_Name":"Fiat Italy     Dealer","trackbacknumber":"390236000471","external_reference":"0","effective_start_date_time":"04\/03    \/2013 10:13:57","effective_end_date_time":"01\/01\/3000 00:00:00"}' (length=255)

我是否正确使用了result_array?

感谢您的时间。非常感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

由于你在循环中什么都不做,所以每个循环都需要最后一行。 如果您需要将所有行传递给数组$data[] = $row;

foreach ($query->result_array() as $row)
{
$data[] = $row;
}
var_dump(json_encode($data, TRUE));

关于你在json_encode之后得到的字符串,这是因为它的返回类型是一个字符串。 PHP Manual- json_encode