2

我正在尝试使用 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 的行。总是有通知,但代码正确写入文件。有什么办法可以消除/解决通知/错误?

4

2 回答 2

0

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

例如,对于您的会议,我会这样做:

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

你的阵列也一样。在使用它之前,您需要检查数组的索引。

于 2013-01-31T15:04:11.050 回答
0

您可以使用

方法一

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

方法二

if (isset($studentArray1])){
  // check whether array position 1 exist in array $studentArray
}
于 2013-01-31T15:09:19.277 回答