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");
Beim Zugriff auf einen Wert des Feldes kann der Schlüsselwert direkt angegeben oder als Variable übergeben werden:
| Ergebnis | |
|---|---|
| Variable hat den Wert „Bern“ |
oder:
| Ergebnis | |
|---|---|
Variable hat den Wert „Bern“ |
Beispiel: arr_assoz.php
Hier wurde die Zuweisung der Städtenamen mit der array()-Anweisung realisiert.
<html> <body> <?php $hauptstaedte = array("Schweiz" => "Bern", "Frankreich" => "Paris", "Deutschland" => "Berlin", "Österreich" => "Wien"); $k = "Österreich"; echo "<p>Hauptstadt von $k: " . $hauptstaedte[$k] ."</p>"; echo "Die Hauptstadt von $k ist " .$hauptstaedte["Österreich"]; ?> </body> </html>
array()-Funktion und die Zuweisung der Schlüssel sowie Feldinhalte angelegt.
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;
foreach() erwartet die Angabe des assoziativen Feldes, dessen Elemente durchlaufen werden sollen.foreach bei jedem Schleifendurchlauf der Variablen ($wert) nacheinander die Werte der Arrayelemente zugewiesen.
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:
<?php $hauptstaedte = array("Schweiz" => "Bern", "Frankreich" => "Paris", "Deutschland" => "Berlin"); $hauptstaedte["Polen"] = "Warschau"; $hauptstaedte["Italien"] = "Rom"; $hauptstaedte["Österreich"] = "Wien"; echo "<table border>"; echo "<tr><td><b>Land</b></td>" ; echo "<td><b>Hauptstadt</b></td></tr>" ; foreach($hauptstaedte as $land=>$stadt) {echo "<tr><td>$land</td><td align='left'>$stadt</td></tr>" ; } echo "</table>"; ?>
array-Anweisung gefüllt.$land der jeweilige Schlüsselwert und der Variablen $stadt der Wert des Feldes an der durch das Schlüsselwort festgelegten Position zugeordnet.