2013-01-31 3 views
2

Je tente d'écrire dans un fichier en utilisant PHP. J'écris des données à partir de tableaux.Offset non défini lors de l'écriture dans un fichier

Voici mon code:

$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] . " "); 
} 

Je reçois toujours cet avis lorsque je tente d'accéder à cette page:

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

ligne 26 est celui avec le fwrite dans la boucle for. Il y a toujours un avis mais le code écrit dans le fichier correctement. Y at-il quelque chose qui peut être fait pour supprimer/résoudre l'avis/erreur?

+3

, de toute évidence l'un de ces tableaux que vous utilisez dans le fwrite n'ont pas un élément # 5 , ce qui signifie qu'ils ont une taille différente de votre $ studentArray. –

+0

L'un de vos tableaux n'a pas d'élément d'index '5', c'est-à-dire que les tableaux n'ont que 5 éléments ou moins. Il serait surprenant que le fichier résultant soit toujours correct. –

+0

Merci à tous. Je comprends maintenant. Je vais essayer de faire quelque chose: D – hiakoto

Répondre

0

Vous pouvez utiliser

Méthode 1

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

Méthode 2

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

J'ai utilisé isset et cela a fonctionné. Je vous remercie! – hiakoto

0

L'un des tableaux n'a pas d'index à 5. Je suggère d'utiliser isset() avant de l'utiliser.

par exemple pour vos sessions que je ferais:

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

samething pour votre tableau. Vous devez vérifier l'index du tableau avant de l'utiliser.

+0

Ahhh! Je comprends maintenant. Je vous remercie! Je vais essayer de faire quelque chose. – hiakoto

+0

Ça a marché! Merci beaucoup! : D Je te dois. – hiakoto

Questions connexes