Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
faecher:informatik:oberstufe:php:assoziative_arrays:start [28.04.2021 15:40] – sbel | faecher:informatik:oberstufe:php:assoziative_arrays:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | |||
- | ====== Assoziative Arrays ====== | ||
- | |||
- | In assoziativen Arrays wird als //key// statt der Index-Nummer ein ganz eigenes Schema erzeugt. Dieses darf man sich (fast) frei ausdenken. Man kann bei diesem „Ersatz-Schlüssel“ einfache Strings aber auch Zahlen benutzen, um es sich bei der Abfrage zu erleichtern. Der //key// wird dann in Gänsefüßchen notiert. | ||
- | |||
- | Beispiel: | ||
- | <code php> | ||
- | | ||
- | | ||
- | ... | ||
- | </ | ||
- | |||
- | Damit werden Arrays noch wertvoller, da jedes Element eines Arrays nun zwei miteinander verknüpfte Informationen enthält, im Beispiel oben den Namen des Spielers (wie bisher) aber zusätzlich noch die Position. | ||
- | |||
- | Ein weiteres Beispiel, wie ein assoziatives Array definiert werden kann: | ||
- | |||
- | <code php> | ||
- | $wochentage = array( | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | |||
- | echo $wochentage[" | ||
- | </ | ||
- | |||
- | ===== Die foreach Schleife ===== | ||
- | |||
- | Für Arrays gibt es den speziellen Schleifentyp foreach. Während die Verwendung bei " | ||
- | |||
- | Mit diesem Schleifentyp werden stets alle einzelnen Arrayelemente eines Arrays durchlaufen. Eine foreach-Schleife beginnt mit dem Schlüsselwort foreach. Dann folgt nach der öffnenden Klammer das Array bzw. die Variable, die das Array enthält, welches durchlaufen werden soll. Danach folgt das Schlüsselwort '' | ||
- | |||
- | <code php> | ||
- | foreach ($hauptstadt as $stadt) { | ||
- | echo $stadt."< | ||
- | } | ||
- | // gibt nacheinander die Werte aus dem Array aus | ||
- | </ | ||
- | |||
- | Mit der foreach Schleife kann man auch gleichzeitig auf Schlüssel und Werte zugreifen: | ||
- | <code php> | ||
- | | ||
- | print ' | ||
- | print " ----> Schlüssel: < | ||
- | } | ||
- | | ||
- | |||
- | </ | ||
- | |||
- | |||
- | ---- | ||
- | {{: | ||
- | |||
- | === (A1) === | ||
- | |||
- | Schreibe eine hauptstadt.php-Datei, | ||
- | Gib anschließend die Länder mit ihren Hauptstädten aus. | ||
- | |||
- | |||
- | // | ||
- | |||
- | Bei der Ausgabe von Arrays in Verbindung mit einem Text kann man verschiedene Varianten wählen. Eine davon lautet: | ||
- | <code php> | ||
- | echo "< | ||
- | </ | ||
- | |||
- | Beachte die unterschiedlichen Anführungszeichen! | ||
- | |||
- | ---- | ||
- | {{: | ||
- | |||
- | === (A2) === | ||
- | |||
- | |||
- | Gegeben sei folgendes Array: | ||
- | |||
- | <code php> | ||
- | $bildschirmtyp = array(' | ||
- | </ | ||
- | |||
- | |||
- | Erzeuge unter Verwendung des Arrays folgende Ausgabe: | ||
- | < | ||
- | Flachbildschirme sind billig und gut, Minibildschirme billig und klein. Plasmabildschirme sind teuer, gut und schwer. | ||
- | </ | ||
- | |||
- | Fügen zu dem Array noch den Astronautenbildschirm hinzu, der riesig und teuer ist. Erzeugen die entsprechende Ausgabe. | ||
- | |||
- | |||
- | ---- | ||
- | {{: | ||
- | |||
- | === (A3) === | ||
- | Gegeben sei folgender Code, der ein assoziatives Array definiert: | ||
- | |||
- | <code php> | ||
- | $typ[' | ||
- | $typ[' | ||
- | $typ[' | ||
- | $typ[' | ||
- | $typ[' | ||
- | </ | ||
- | |||
- | Gib eine Liste der folgenden Form aus: | ||
- | < | ||
- | Haustyp: bungalow, Dach: flach | ||
- | </ | ||
- | |||
- | //Zum knobeln:// Wie kann man erreichen, dass der erste Buchstabe des Haustyps immer groß geschrieben wird? | ||
- | |||
- | Wie könnte man das Array alternativ definieren? Schreibe den Code um und teste! | ||
- | |||
- | ---- | ||
- | {{: | ||
- | |||
- | === (A4) Geheimschrift === | ||
- | |||
- | |||
- | Der Heimlichkeit wegen benutzen wir einen geheimen Code für Wochentage. Dabei ersetzen wir jeweils den Wochentag durch ein anderes Substantiv, nämlich | ||
- | < | ||
- | Montag/ | ||
- | Dienstag/ | ||
- | Mittwoch/ | ||
- | Donnerstag/ | ||
- | Freitag/ | ||
- | Samstag/ | ||
- | Sonntag/ | ||
- | </ | ||
- | |||
- | Außerdem ersetzen wir einige Schulfächer: | ||
- | |||
- | < | ||
- | Wirtschaftsinformatik/ | ||
- | Deutsch/ | ||
- | Mathematik/ | ||
- | </ | ||
- | |||
- | (1) Erstelle ein assoziatives Array namens '' | ||
- | |||
- | (2) Schreibe ein Programm, um folgende Mitteilung zu entschlüsseln: | ||
- | |||
- | < | ||
- | Letzten Behördenwegweiser hatten wir Kaugummi, das war anstrengend. Zum Glück blieb dann nur noch der Fahrradschloss. Kettenschaltung und Montag konnte ich mich nicht richtig entspannen, denn Baumhaus erwartet uns schon wieder Freude. Naja ... besser als Brezeln. | ||
- | </ | ||
- | |||
- | Ersetze dabei einfach die codierten Wörter durch die entsprechende Arrayvariable. | ||
- | |||
- | **Tipp:** Du kannst einen Text in ein Array aus den einzelnen Wörtern umwandeln: | ||
- | |||
- | <code php> | ||
- | $worte = explode(" | ||
- | </ | ||
- | |||
- | Nun kannst du mit einer '' | ||
- | |||
- | (3) Schreibe wie oben ein Programm, das folgenden Text in Ihre Geheimschrift übersetzt: | ||
- | |||
- | < | ||
- | Am Freitag haben wir Mathematik, am Dienstag ebenfalls. Mein Lieblingsfach ist Deutsch, das wir leider nur am Mittwoch haben. Am meisten freue ich mich immer darauf, wenn ich am Sonntag Wirtschaftsinformatik lernen darf. | ||
- | </ |