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

Posted

技术标签:

【中文标题】获取 CodeIgniter ActiveRecord 结果中每一行的关联数组【英文标题】:Get associative array of each row in CodeIgniter ActiveRecord result 【发布时间】:2014-01-20 19:17:32 【问题描述】:

在 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 ();

【问题讨论】:

result_array()。首先阅读文档,在询问之前在 SO 或 google 上搜索。 【参考方案1】:

试试

$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

【讨论】:

【参考方案2】:

使用这个方法,

$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

【讨论】:

【参考方案3】:

你可以使用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'];

【讨论】:

【参考方案4】:

$this->db->row();

$query->row();

【讨论】:

如果你能详细地向听众解释你的答案会更好。感谢您的努力回答。

以上是关于获取 CodeIgniter ActiveRecord 结果中每一行的关联数组的主要内容,如果未能解决你的问题,请参考以下文章

获取 codeigniter 的活动日志

CodeIgniter 获取表计数行

Codeigniter 获取数据错误:尝试获取非对象的属性

codeigniter 从 url 获取值

如何在 CodeIgniter 中获取关系数据

CodeIgniter:帮助从网页获取元标记的类/库?