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
    • Wtorek
      • Lekcja 1
        • sala
        • nauczyciel
        • przedmiot
      • Lekcja 2
        • sala
        • nauczyciel
        • przedmiot
    • Środa
  • 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.