获取CodeIgniter ActiveRecord结果中每行的关联数组

时间:2014-01-03 06:53:20

标签: php codeigniter activerecord

在CodeIgniter中有一个函数query->row_array,它将为您提供结果的关联数组,将列名称映射到值。但是,只有当结果有一行时,此功能才有效。

我需要的是一个函数,它将为查询结果中的每一行返回一个关联数组。

我目前正在做:

$arr = array ();
foreach ($query->result() as $row) {
  array_push ($arr, array("col1" => $row->col1, "col2" => $row->col2, ...));
}
return $arr;

这不仅会使读取和写入变得烦人,而且当我向此表添加更多列时,它也不会扩展。我在几个地方都有类似的代码,我希望我可以用更清洁的东西替换它。

我希望有类似的东西:

$arr = array ();
foreach ($query->result() as $row) {
  array_push ($arr, $row->to_array());
}
return $arr;

有类似的东西吗?甚至更好:

return $query->result_array ();

4 个答案:

答案 0 :(得分:2)

尝试

$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}

https://www.codeigniter.com/user_guide/database/results.html

答案 1 :(得分:0)

使用此方法,

$query = $this->db->get_where('table', array('table_id' => $id));

        $queryArr = $query->result();        

        foreach ($queryArr[0] as $key=>$val)
        {
            $row[$key]=$val;
        }

print_r($row); //$row will give associative array

答案 2 :(得分:-1)

您可以使用result_array()查看原始文档 http://ellislab.com/codeigniter/user-guide/database/results.html

示例代码。

$query = $this->db->query("YOUR QUERY");foreach ($query->result_array() as $row){ echo $row['title'];   echo $row['name'];   echo $row['body'];}

答案 3 :(得分:-1)

$ this-> db-> row();

$ query-> row();