获取 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 结果中每一行的关联数组的主要内容,如果未能解决你的问题,请参考以下文章