Hallo,
ich habe folgendes, zu Testzwecken fest vorgegebenes, Array:
$EmpfaengerArray = array ("Anrede" => "Herrn",
"Vorname" => "Enrico",
"Nachname" => "Mustermann",
"Strasse" => "Mustermann-Weg",
"Hausnummer" => "53",
"Postleitzahl" => "12345",
"Ort" => "Musterstadt");
Nun möchte ich daraus einen Empfängerblock erzeugen in der Form
Herrn
Enrico Mustermann
Mustermann-Weg 53
12345 Musterstadt
Dies möchte ich über folgenden Code umsetzen:
$Empfaenger = "";
foreach ($EmpfaengerArray as $Schluessel => $Wert)
{
$Empfaenger .= $Wert;
if ($Schluessel == "Anrede")
$Empfaenger .= "\n";
else
if ($Schluessel == "Vorname")
{
$Nachname = Weiter ($EmpfaengerArray, "Vorname");
$Empfaenger .= $Nachname .= "\n";
continue;
}
else
if ($Schluessel == "Strasse")
{
$Nachname = Weiter ($EmpfaengerArray, "Strasse");
$Empfaenger .= $Hausnummer .= "\n";
continue;
}
}
Die Funktion "Weiter" soll mir nun den nächsten Variableninhalt, ausgehend vom aktuell ermittelten Variableninhalt liefern:
function Weiter ($arr, $key)
{
$keys = array_keys($arr);
$keyIndexes = array_flip($keys);
$return = array();
if (isset($keys[$keyIndexes[$key]+1]))
$return[] = $keys[$keyIndexes[$key]+1];
else
$return[] = $keys[0];
return $return;
}
In meinem derzeitigen Ansatz sind "Nachname" und "Hausnummer" aber undefiniert, d.h. die Abfrage des Rückgabewertes funktioniert nicht.
Gebe ich nun hinter die beiden Variablen jeweils "[0]" oder "[1]" an, dann bekomme ich die Meldung "Undefined offset: 0".
Wie komme ich richtig an den Wert ran?
Vielen Dank und Gruß,
Enrico