【问题标题】:How to process an array of results in CodeIgniter如何在 CodeIgniter 中处理结果数组
【发布时间】:2011-04-28 22:24:13
【问题描述】:

这是我的模型。我不确定我是否走在正确的轨道上,但这是一个开始。我的网站上有一个调查表,所有值都是 INT 字段中的数字。我想计算 10 列中每一列的平均值。我想知道是否有一种方法可以使用循环来处理结果,而不是单独计算每个结果。所以这里是:

function survey_averages() {

        $q = array(
                    '1' => 'q1',
                    '2' => 'q2',
                    '3' => 'q3',
                    '4' => 'q4',
                    '5' => 'q5',
                    '6' => 'q6',
                    '7' => 'q7',
                    '8' => 'q8',
                    '9' => 'q9',
                    '10' => 'q10'
                    );


        for ($i=1; $i<11; $i++) {
            $this->db->select_avg($q[$i]);
            $query[$i] = $this->db->get('survey');
        }

        return $query;

    }

如果我在正确的轨道上,那么我如何取回数组的结果?如果我走错了路,我需要改变什么?另外,如果我在我的控制器中这样做:

foreach($query->result_array() as $row) {

如何返回数组的行? PHP 不允许我执行 $row->1 或 $row->'1'。

【问题讨论】:

  • 不确定查询本身的质量,但您应该尝试从 get() 返回结果,如下所示:$query[$i] = $this-&gt;db-&gt;get('survey')-&gt;result();

标签: codeigniter


【解决方案1】:

试试var_dump($query-&gt;result_array())

【讨论】:

  • 嗨,tpae,可能是您的建议不起作用,$query 是一个 array 查询,而不仅仅是一个。看看 $query[$i] = ...
  • @Carlos Mora:var_dump 也显示数组。显示有关该变量的所有信息。 php.net/manual/en/function.var-dump.php
【解决方案2】:

代替

$query[$i] = $this-&gt;db-&gt;get('survey');

试试

$query[$i] = $this-&gt;db-&gt;get('survey')-&gt;result_array();

那么,要处理模型的结果,您应该这样做:

foreach( $query as $result )
   foreach( $result as $row ){
      // process $row
   }

【讨论】:

    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2013-09-28
    • 2016-04-28
    相关资源
    最近更新 更多