Nieoczekiwany </br> po zmiennej

Część kodu:

        $pytania=14;
        $plik = fopen("baza.ant", "r");
	for ($i=0;$i<($pytania);$i++)
		{
		for ($j=0;$j<5;$j++)
			{
			$linia=fgets($plik)."</br>";
			$array[$i][$j]=$linia;
			}
		}
	fclose($plik);
	for ($k=0;$k<($pytania);$k++)
		{
		if (isset($_POST[$k]))
			{
			$tmp=$_POST[$k];
			$tmp2=$array[$k][4];
			echo $tmp2;
			echo "</br></br></br>";
			echo $array[$k][0]."</br>";
			echo "Twoja odpowiedź: ".$array[$k][$tmp]."</br>";
			echo "Poprawna odpowiedź".$array[$k][$tmp2];
			}
		}

$_POST[$k] zawiera cyferkę ze zbioru {1,2,3}

baza.ant to zwykły plik txt z 70 wierszami

$array[$k][4] to cyfra ze zbioru {1,2,3}

 

 

Po wykonaniu kodu pojawia mi się Notice: Undefined index: 1 </br> in D:\wamp\www\pro\index.php on line

W wierszu gdzie znajduje się echo “Poprawna odpowiedź”.$array[$k][$tmp2];

Nieoczekiwany </br> po cyferce. Skąd się wziął i jak to naprawić?

To tylko notice.

Wcześniej inicjuje ten element w tablicy.

            $linia=fgets($plik)."</br>";
            $array[$i][$j]=$linia;

ps. Właśnie zauważyłem że tu mi się wkradł ten </br>

Niestety po jego usunięciu komunikat o błędzie nie znikną tylko się zmienił.

            $linia=fgets($plik);
            $array[$i][$j]=$linia;

 Notice: Undefined index: 1 in D:\wamp\www\pro\index.php on line 

 

I teraz to zupełnie nie wiem gdzie jest błąd.

 

pps.w baza.ant nie ma żadnego znaku po zakończeniu każdego wiersza.

Tak dla pewności, przeklej (używając CTRL A, CTRL C, CTRL V) zawartość pliku na tę stronę: http://wklej.to/ i podaj link

http://wklej.to/eBsJf

wiem że głupie ale ważna dla mnie jest ich ilość a nie jakość :slight_smile:

$tmp2 = (int) trim($array[$k][4]);

[EDIT]

Zmieniłem trochę miejsce w którym należy rzutować, bo poprzednie faktycznie było kiepskie, ogólnie słaby pomysł trzymać pytania w taki sposób (nie wygodne to, zastanów się nad json’em/xml’em)

 

Dzięki.

Nie zupełnie tak zmienić jak napisałeś.

A mianowicie tak:

$array[$i][$j]=$linia;
if ($j==4) $array[$i][$j]=(int) trim($linia); else $array[$i][$j]=$linia;

bo w reszcie są stringi a tylko w co piątym wierszu są inty.

 

Ale bez twojej pomocy bym nie dał rady. Po prostu nie wiedziałem że można z góry narzucić typ zmiennej.

Jeszcze raz dzięki :slight_smile: