-1
$tempfiles=array();
    $i=0;
    foreach ($query->result_array() as $row) {
        $sql='Select * FROM file WHERE name="'.$row['filename'].'"';
        $q=$this->db->query($sql);

        foreach ($q->result_array() as $tuple) {
            $tempfiles[$i]['content']=$tuple['content'];
            $tempfiles[$i]['owner']=$tuple['content'];
            $tempfiles[$i]['last_modified_date']=$tuple['last_modified_date'];
        }
        $i++;
    }


    $i=0;
    $files=array();
    foreach ($query->result_array() as $row) {
        $files[$i]['name']=$row['filename'];
here:   $files[$i]['content']=$tempfiles[$i]['content'];
here:   $files[$i]['owner']=$tempfiles[$i]['owner'];
here:   $files[]['last_modified_date']=$tempfiles[$i]['last_modified_date'];
        $i++;
    }

php 错误:未定义的偏移量 0 在我提到“这里”的行中,我无法弄清楚的问题是什么?

/我正在使用codeigniter。/

4

1 回答 1

0

你最好检查一下

$query->result_array()

在第一个循环中,它是否包含任何结果。

如果不是,那么您不应该进一步移动,否则执行代码。

再次为第一个 foreach 中的下一个代码,检查

$q->result_array()

如果它包含结果,则移动以在$tempfiles中分配值。

对于在$files中分配值,您应该像这样,

$files=array();
if( !empty($tempfiles))
{
  $i=0;
  foreach ($query->result_array() as $row) {
      $files[$i]['name']=$row['filename'];
  here:   $files[$i]['content']=$tempfiles[$i]['content'];
  here:   $files[$i]['owner']=$tempfiles[$i]['owner'];
  here:   $files[]['last_modified_date']=$tempfiles[$i]['last_modified_date'];
      $i++;
  }
}
于 2012-12-07T08:31:53.860 回答