====== Assoziative Felder ====== ===== Assoziative Felder erstellen ===== ==== Ein assoziatives Feld anlegen ==== Eine weitere Möglichkeit, Feldvariablen anzulegen, sind die assoziativen Felder. Bei ihnen werden für den Zugriff keine fortlaufenden Indizes benutzt, sondern Schlüssel, über deren Wert auf die einzelnen Werte zugegriffen werden kann, so genannte Schlüsselwörter. Syntax der ''array()''-Anweisung bei assoziativen Feldern Auch die assoziativen Felder lassen sich über die ''array()''-Funktion füllen. $Feldvariable = array (Schlüssel1 => Wertl,Schlüssel2 => Wert2, ...) ; **Beispiel:** $hauptstaedte = array("Schweiz" => "Bern", "Frankreich" => "Paris"); * Die array ()-Anweisung beginnt mit dem reservierten Wort array. * Der Variablen werden die einzelnen Wertpaare, bestehend aus Schlüsselwort (Key) und Wert (Value), übergeben, indem sie durch Kommata voneinander getrennt angegeben werden. * Die Indizierung der einzelnen Werte erfolgt über die Angabe eines Schlüssels in Form einer beliebigen, eindeutigen Zeichenkette oder eindeutiger Integerwerte. Die Zuweisung erfolgt über **=>**. \\ ==== Auf assoziative Felder zugreifen ==== Beim Zugriff auf einen Wert des Feldes kann der Schlüsselwert direkt angegeben oder als Variable übergeben werden: ^ ^Ergebnis^ |$stadt = $hauptstaedte["Schweiz"];| Variable $stadt hat den Wert "Bern"| oder: ^ ^Ergebnis^ |$k = "Schweiz"; $stadt = $hauptstaedte[$k];|\\ Variable $stadt hat den Wert "Bern"| \\ **Beispiel: arr_assoz.php** Hier wurde die Zuweisung der Städtenamen mit der ''array()''-Anweisung realisiert. "Bern", "Frankreich" => "Paris", "Deutschland" => "Berlin", "Österreich" => "Wien"); $k = "Österreich"; echo "

Hauptstadt von $k: " . $hauptstaedte[$k] ."

"; echo "Die Hauptstadt von $k ist " .$hauptstaedte["Österreich"]; ?>
* Das assoziative Feld wird über die ''array()''-Funktion und die Zuweisung der Schlüssel sowie Feldinhalte angelegt. * Der Variablen $k wird die Zeichenkette Österreich zugewiesen. * Mithilfe der Variablen $k wird das entsprechende Element aus dem Feld ausgelesen und angezeigt. * Hier wird das Element durch die direkte Angabe des Schlüssels herausgefiltert. Die Bezeichnung des Schlüssels wird als Zeichenkette in den eckigen Klammern angegeben. \\ ===== Mit assoziativen Feldern arbeiten ===== ==== Daten an Variablen übergeben ==== Mit einer ''foreach()''-Schleife sind Sie in der Lage, die Werte der Feldelemente einzeln auszulesen. Dabei wird jedes Element in einer neuen Variable zwischengespeichert. foreach($Feld as $wert) Anweisung; foreach($Feld as $index => $wert) Anweisung; * Die Funktion ''foreach()'' erwartet die Angabe des assoziativen Feldes, dessen Elemente durchlaufen werden sollen. * In der ersten Variante werden mithilfe von ''foreach'' bei jedem Schleifendurchlauf der Variablen (%%$wert%%) nacheinander die Werte der Arrayelemente zugewiesen. * Mithilfe der zweiten Variante können Sie zusätzlich den Index des Arrayelements auslesen und der Variablen %%$index%% zuweisen, was beispielsweise bei assoziativen Feldern hilfreich ist. **Beispiel: foreach.php**\\ Verschiedene Länder der Welt und deren Hauptstädte werden in einem assoziativen Feld gespeichert. Zur Ausgabe sollen das Land ( = Schlüssel) und die dazugehörige Hauptstadt ( = Wert) in einer Tabelle angezeigt werden: "Bern", "Frankreich" => "Paris", "Deutschland" => "Berlin"); $hauptstaedte["Polen"] = "Warschau"; $hauptstaedte["Italien"] = "Rom"; $hauptstaedte["Österreich"] = "Wien"; echo ""; echo "" ; echo "" ; foreach($hauptstaedte as $land=>$stadt) {echo "" ; } echo "
LandHauptstadt
$land$stadt
"; ?>
* Das assoziative Feld %%$hauptstaedte%% wird über die ''array''-Anweisung gefüllt. * Dem assoziativen Feld %%$hauptstaedt%%e werden weitere Elemente hinzugefügt. * Der Tabellenkopf wird erstellt. * Mithilfe einer foreach-Schleife können Sie auf jedes Element des Feldes zugreifen. Die Schleife wird so lange durchgeführt, bis alle Elemente des Feldes angesprochen wurden. In jedem Schleifendurchlauf wird der Variablen ''$land'' der jeweilige Schlüsselwert und der Variablen ''$stadt'' der Wert des Feldes an der durch das Schlüsselwort festgelegten Position zugeordnet. * Die Werte werden in die Tabelle eintragen und über den Ausgabebefehl echo am Bildschirm ausgegeben. {{inf:inf7b_201011:php:php5-s48.jpg?400|Ausgabe von Werten eines assoziativen Arrays}}