1.8.3) 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");


Auf assoziative Felder zugreifen

Beim Zugriff auf einen Wert des Feldes kann der Schlüsselwert direkt angegeben oder als Variable übergeben werden:

Ergebnis
<php>$stadt = $hauptstaedte[„Schweiz“];</php> Variable <php>$stadt</php> hat den Wert „Bern“

oder:

Ergebnis
<php>$k = "Schweiz"; $stadt = $hauptstaedte[$k];</php>
Variable <php>$stadt</php> 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>


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;

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>";
 
?>

Ausgabe von Werten eines assoziativen Arrays