Folien



(letzte Synchronisation der PDF-Präsentation: 02.03.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Arrays sind Listen mit Werten:

$variable[key]

Statt key sagt man auch Schlüssel oder Zähler, wir verwenden im Folgenden immer “Schlüssel”. Der Schlüssel beginnt immer bei 0. Der Inhalt der Variable (mit einem jeweiligen Schlüssel) ist der Wert der Variablen. Damit ist $variable[2] der dritte Wert im Array.

Beispiel:

PHP-Code
<?php $monat[0] = "Januar"; $monat[1] = "Februar"; $monat[2] = "März"; // usw. $monat[11] = "Dezember"; // zweiten Monat ausgeben (gibt 'Februar' aus) echo $monat[1]; ?>  

Effizientere Zuweisung über array:

PHP-Code
  <?php $monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); echo $monat[2]; ?>  

Anwendungsbeispiel: Array in Verbindung mit date()

date() gibt verschiedene Datumsformate aus (vgl. php.net/manual), z.B.

date("w") – Wochentag (0 = Sonntag, 1 = Montag …)
date("d") – Tag als Datum (1 bis 31)
date("l") – Wochentag als Wort, allerdings (meistens wg. Servereinstellung) englisch (Sunday …)
date("n") – Monat als Zahl ohne Null (1 = Januar …)
date("m") – Monat als Zahl mit Null (01 = Januar …)
date("y") – Jahr (letzte zwei Stellen) (02, 03 …)
date("Y") – Jahr (vierstellig) (2002, 2003 …)

Damit kann das aktuelle Datum (Serverzeit!) ausgegeben werden mit echo date("d.m.Y.")

Um den Wochentag in Deutsch ausgeben zu lassen, wäre eine Lösung mit Array möglich:

PHP-Code
  <?php $tag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); echo "Heute ist " . $tag[date("w")] . ", der " . date("d.m.Y") . "."; ?>  

erzeugt als Ausgabe

Heute ist Dienstag, der 21.07.2009.

Einfacher wird es, wenn der Schlüssel ausgelagert wird:

PHP-Code
  <?php $tag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); $tagkey = date("w"); echo "Heute ist " . $tag[$tagkey] . ", der " . date("d.m.Y") . "."; ?>  

(gleiche Ausgabe wie oben)

Elemente eines Arrays zählen

mit count(), z.B. count($variable)

PHP-Code
  <?php $monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); $anzahlMonate = count($monat); echo "Im Array sind $anzahlMonate Monate."; ?>  

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: PHP - Arrays mit numerischen Indizes *****

PHP-7_1: Array erstellen

Erstellen Sie ein Array $wochentage, in dem die sieben Wochentage gespeichert sind. Lassen Sie den Montag und den Donnerstag ausgeben. Überprüfen Sie die Anzahl der Elemente im Array um sicherzustellen, dass Sie keinen Tag vergessen haben.




PHP-7_2: Was enthält das Array?

Gegeben sei folgendes Listing:

PHP-Code
$artikel = array("Schuhe", "Jacken", "Hosen", "Mützen", "Pullover", "Brillen");  

1. Welche Ausgabe erhält man durch die Anweisung echo $artikel[3];?
2. Welche Ausgabe erhält man durch die Anweisung echo $artikel[5];?
3. Schreiben Sie unter Verwendung des Arrays eine Anweisung, durch die folgende Ausgabe erzeugt wird:

Wir haben 7 Artikel, z.B. Schuhe und Jacken.




PHP-7_3: Array umschreiben

Gegeben sei folgendes Listing:

PHP-Code
$schueler[0] = "Hermann"; $schueler[1] = "Martina"; $schueler[2] = "Leon"; $schueler[3] = "Ludger"; $schueler[4] = "Malina"; $schueler[5] = "Petra";  

Bringen Sie den Code in eine andere, kürzer Variante. Lassen Sie sich die Schülerin Malina ausgeben.




PHP-7_4: Array rekonstruieren

Mit der Anweisung

PHP-Code
echo "Aktuell können Sie mit uns in folgende Länder reisen:<br />" . $land[0] . "<br />" . $land[1] . "<br />" . $land[2] . "<br />";  

erhalten Sie die Ausgabe

Aktuell können Sie mit uns in folgende Länder reisen:
Italien
Spanien
Türkei

Schreiben Sie den Code, um ein entsprechendes Array zu erzeugen.




PHP-7_5: Dinosaurier - objektorientiert

Programmieren Sie die in 05php/php07_arrays-dinosaurier-oop.png abgebildete Klasse und überprüfen Sie die Funktionsfähigkeit, indem Sie ein Objekt anlegen (z.B. $listeAusgestorbeneTiereFuerBrockhaus), einige Dinosaurier anlegen (mit setDino), sich einige ausgeben lassen (mit getDino) und die Anzahl der Dinosaurier mit zaehleDinos zählen lassen.

Zusatzaufgabe:
Die vorige Aufgabe hat das Problem, dass Schlüssel überschrieben werden können (wenn Sie im Setter einen Schlüssel verwenden, der schon vergeben ist). Regeln Sie das so:

PHP-Code
$this->dino[] = $name; // hängt ein Element an das Array