如何将db查询结果转换为数组

时间:2011-04-04 12:32:38

标签: php arrays codeigniter

原始我认为$ query是数组对象,因为我可以将这些数据打印到这样的列表表中。 我的控制器代码

$data['dates'] = $this->calendar_model->get_cal_eventDate();
$this->load->library('table');
$this->load->view('my_test', $data);

我的观看代码

echo $this->table->generate($dates);

但是当我更改代码以尝试通过foreach打印$ tbDataArr时。它没用。如何将$ query结果(eventDate字段值)转换为数组对象。

function get_cal_eventDate() {
    $this->db->select('eventDate');
        $query = $this->db->get('tb_event_calendar');
        return $query;
}

$tbDataArr = $this->calendar_model->get_cal_eventDate();

foreach ($tbDataArr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}

3 个答案:

答案 0 :(得分:8)

您使用的是CodeIgniter吗?如果你是你可以做到这一点

function get_cal_eventDate() {
    $this->db->select('eventDate');
    $query = $this->db->get('tb_event_calendar');
    $result = $query->result_array();
    return $result;
}

如果不需要更多关于您使用PHP做什么的信息。

答案 1 :(得分:4)

Codeigniter,对吧?

使用$query->result_array()方法。

在此处查看更多:
http://codeigniter.com/user_guide/database/results.html

答案 2 :(得分:0)

    //Convert $query->result_array() to $query->result() after add new field in array

    $result = $query->result_array();
    for($i=0;$i<$query->num_rows();$i++){
        //insert new field in array (test_field with value 1)
        $result[$i]+=array('test_field'=>1);
        $result[$i] = (object)$result[$i];
    }
    return $result; //equivalent to return $query->result() without new field;