在控制器和视图上使用foreach重命名数组:

时间:2018-02-14 09:46:50

标签: php arrays codeigniter

我遇到问题,我尝试使用$query->result_array()上的foreach重新命名controller,并使用其他viewforeach中调用$query->result_array();显示controller

的结果

这是我的表现。

我的logs()

我有这个名为$query->result_array()的用户定义函数,我在里面有一个查询并使用foreach{}来获取结果。然后我使用 $result = array(); foreach ($query->result_array() as $row) { $result = array( "id" => $row['id'], "name" => $row['name'], "status" => $row['status'], "time" => $row['time'] ); } return $result; 重命名它,如下面的代码:

filtered_logs()

然后我创建了另一个名为logs()的用户定义函数来过滤LEFT JOIN的结果*我过滤了它,因为我有多个表格 $filtered = array(); $logs = $this->logs(); if ($logs['status'] == "ok") { $query = $this->db->query("SELECT * FROM table a LEFT JOIN table b ON a.image = b.image LEFT JOIN ....ON... WHERE a.id = '".$logs['id']."'"); foreach ($query->result_array() as $row){ $filtered = array( "path" => $row['path'], "grade" => $row['grade'], "time" => $logs['time'], ); } }

view

将这些结果发送到index我使用此方法,放在controller的{​​{1}}上。

   $data['logs'] = $this->filtered_logs();
   $this->load->view('pages', $data);

然后使用以下代码在view上显示:

   <?php
      foreach ($logs as $row) {
        echo $row['id']." </br>";
        echo $row['status']." </br>";
        echo $row['time']." </br>";
      }
   ?>

但是当我使用这种处理result_array的方式时,它会给我一个错误说&#34;非法字符串偏移&#39;&#39; &#34;

有人可以帮助我或告诉我是否有其他方式显示我的查询结果?

2 个答案:

答案 0 :(得分:0)

这只是显示结果的另一种方式,试试吧。

    <?php
          foreach ($logs as $row) {
            echo $row->id." </br>";
            echo $row->status." </br>";
            echo $row->time." </br>";
          }
       ?>

答案 1 :(得分:0)

我猜你错过了#34; []&#34;在$ result数组之后,你为每个循环输入数据,这导致了这个错误。

应该是这样的:

$result = array();
foreach ($query->result_array() as $row) {
    $result[] = array(
        "id"         => $row['id'],
        "name"       => $row['name'],
        "status"     => $row['status'],
        "time"       => $row['time']
        );
}
return $result;