Quest: Tablice w PHP
Problem
Tablice pozwalają tworzyć proste struktury danych opisujące rzeczywistość. Wykonywanie operacji na takich danych jest prostsze niż operowanie na danych nie ustrukturyzowanych. Podstawowe funkcje pozwalające wykonywać takie operacje to: array_push, array_pop, implode, explode, sort, natsort, print_r. Trudność może sprawiać już samo zaplanowanie struktury danych. Jak powinna wyglądać struktura danych pozwalająca przechowywać plan lekcji?
Zadanie
Utwórz strukturę danych w formie tablicy tablic i wprowadź do niej ręcznie przykładowy plan. Utworzoną tablicę wypisz za pomocą print_r oraz <pre>.
Wskazówka
Wariant uproszczony
Utwórz tablicę tablic. Dane rozdzielaj przecinkiem.
- Poniedziałek
- nr, sala, nauczyciel, przedmiot
- nr, sala, nauczyciel, przedmiot
- nr, sala, nauczyciel, przedmiot
- …
- Wtorek
- nr, sala, nauczyciel, przedmiot
- nr, sala, nauczyciel, przedmiot
- nr, sala, nauczyciel, przedmiot
- Środa
- …
Wariant mniej uproszczony
Utwórz tablicę asocjacyjną, gdzie nazwa klasy będzie kluczem a wartością kolejna tablica asocjacyjna przypisująca do dni tygodnia tablice lub obiekty z planem.
- Klasa #1
- Poniedziałek
- Lekcja 1
- sala
- nauczyciel
- przedmiot
- Lekcja 2
- sala
- nauczyciel
- przedmiot
- Lekcja 3
- sala
- nauczyciel
- przedmiot
- Lekcja 1
- Wtorek
- Lekcja 1
- sala
- nauczyciel
- przedmiot
- Lekcja 2
- sala
- nauczyciel
- przedmiot
- Lekcja 1
- Środa
- Poniedziałek
- Klasa #2
- Klasa #3
Quest: Napisy w PHP
Problem
Operacje wykonywane na napisach są potrzebne w wielu językach. W PHP są kluczowe. Jeśli zna się podstawowe funkcje (strpos, substr, strstr, strlen, strtolower, ucwords,… ), warto stworzyć z nich coś nieco większego.
Zadanie
W kodzie html zawierającym plan lekcji dowolnej klasy trzeba dokonać zmian i wyświetlić wynikową stronę. Można zająć się tylko kodem głównej ramki zawierającej plan jednej klasy. Dla uproszczenia można też ręcznie wkleić kod html do zmiennej w skrypcie. Zmiany nie mogą jedynie modyfikować arkusza CSS.
Zmiana 1: Usunięcie ze strony wszystkiego z wyjątkiem tabeli z planem.
Zmiana 2: Usunięcie inicjałów nauczycieli wraz z zawierającym je tagiem html.
Zmiana 3: Usunięcie symboli grup rozpoczynających się od „#”.
Poprawnie działający skrypt na wejściu może otrzymać plan losowo wybranej klasy.