写入文件时未定义的偏移量

时间:2013-01-31 14:58:15

标签: php

我正在尝试使用PHP写入文件。我正在从数组中写入数据。

这是我的代码:

    $subject = $_SESSION['subject'];
    $section = $_SESSION['section'];
    $exam1 = $_SESSION['exam1'];
    $exam2 = $_SESSION['exam2'];
    $finalexam = $_SESSION['finalexam'];
    $average = $_SESSION['average'];

    $studentArray = $_SESSION['stringArray'];

    $file = $subject . "-" . $section . ".txt";
    $fh = fopen($file, 'a');
    $size = sizeof($studentArray);
    for($i = 0; $i<$size; $i++){
        fwrite($fh, $studentArray[$i] . " " . $exam1[$i] . " " . $exam2[$i] . " " .       $finalexam[$i] . " " . $average[$i] . " ");
}

当我尝试访问此页面时,我总是收到此通知:

 Notice: Undefined offset: 5 in C:\xampp\htdocs\CS120\MP\Grades.php on line 26

第26行是for循环中带有fwrite的那一行。 总是有通知,但代码正确写入文件。 是否可以采取任何措施来删除/解决通知/错误?

2 个答案:

答案 0 :(得分:0)

其中一个数组没有5的索引。我建议在使用之前使用isset()

例如我会做的会话:

$subject = isset($_SESSION['subject']) ? $_SESSION['subject'] : '';

你的阵列同样的东西。在使用之前,您需要检查数组的索引。

答案 1 :(得分:0)

您可以使用

方法1

array_key_exists('1',$studentArray); // check whether array position 1 exist in array $studentArray

方法2

if (isset($studentArray1])){
  // check whether array position 1 exist in array $studentArray
}