【问题标题】:Get associative array of each row in CodeIgniter ActiveRecord result获取 CodeIgniter ActiveRecord 结果中每一行的关联数组
【发布时间】: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 上搜索。

标签: php codeigniter activerecord


【解决方案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();

        【讨论】:

        • 如果你能详细地向听众解释你的答案会更好。感谢您的努力回答。
        猜你喜欢
        • 2017-10-17
        • 2016-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多