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

使用できます

方法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
}
于 2013-01-31T15:09:19.277 に答える
0

配列の1つにインデックスがありません5isset()使用する前に使用することをお勧めします。

たとえば、あなたのセッションのために私はします:

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

アレイについても同じです。使用する前に、配列のインデックスを確認する必要があります。

于 2013-01-31T15:04:11.050 に答える