Piszę w desperacji, bo nie dosyć że straciłem na ten problem sporo czasu, to jak znam życie rozwiązanie jeste proste. Ale do rzeczy... Wygenerowałem sobie test z losowymi pytaniami, z którego odpowidzi trafiają do tablicy $tablica1[]. Do drugiej tablicy $tablica2 wczytałem z pliku txt odpowiedzi do wszystkich pytań. Cały myk polega teraz na tym, żeby porównać, czy dale elementy tablic są identyczne czyli czy zaznaczona odpowiedź jest prawidłowa. Niby banalne... Dla uproszczenia zakładamy że tablice mają po 10 elementów; Oto jak wyglądały moje tablice po wyświetleniu:
$tablica1[]
CODE
( [0] => BRAK ODPOWIEDZI [1] => BRAK ODPOWIEDZI [2] => BRAK ODPOWIEDZI [3] => BRAK ODPOWIEDZI [4] => BRAK ODPOWIEDZI [5] => BRAK ODPOWIEDZI [6] => BRAK ODPOWIEDZI [7] => TAK [8] => BRAK ODPOWIEDZI [9] => BRAK ODPOWIEDZI )
$tablica2[]
CODE
( [0] => NIE [1] => TAK [2] => NIE [3] => TAK [4] => NIE [5] => TAK [6] => TAK [7] => TAK [8] => TAK [9] => TAK )
i fragmencik kodu do porównania wartości z tablic
CODE
for($d=0;$d<10; $d++) { if($tablica1[$d] == $tablica2[$d]) { $wynik++; } };
Niby proste, ale mimo iż np wartość $tablica1[7] jest identyczna jak $tablica2[7] to wg php wartości pół sa inne. W chwili gdy ręcznie ustawię wartosci konkretnych pól, to owszem, php stwierdzi ze wartości są identyczne i zwiększy wartość $wynik o 1.
W trakcie mojego główkowania pomyślałem że moze problemem sa entery, które wczytywane są razem z odpowiedziami z pliku txt do $tablica2[]. Dodałem więc "\n" przy wczytywaniu odpowiedzi z formularza ($_POST). Niestety, mimo że tablice po wyświetleniu wyglądły identycznie (mowa o wybranych polach gdzie została zaznaczona poprawna odpowiedź) to wciąż wg php wartości pól różnią się od siebie. Próbowałem nawet kombinować z kodowaniem znaków (UTF8, ISO).. ale wynik jest zawsze taki sam.. wartości pól są różne, choć wyświetlane są w identyczny sposób.
Byłbym wdzięczny za podpowiedź, czy i gdzie ewentualnie jest jakiś szczególik i dlaczego pola które powinny mieć identyczną wartość wg php różnią się od siebie
