undefined offset php多维数组

时间:2012-12-07 08:03:39

标签: php codeigniter

$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 ./

1 个答案:

答案 0 :(得分: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++;
  }
}