echo $begrüßung;
Ich glaube, ich habe einen Fehler beim Array erstellen. Als Fehlerdmeldung kommt nämlich:
Warning: Invalid argument supplied for foreach()Ich habe es so deklariert:
$name = array(array());
Vermutlich unsinnig - betrachte bitte das Ergebnis mit einem var_dump($name); (vorher <pre> erhöht die Übersichtlichkeit der Ausgabe) -
$name['name']['nummer'];
und das ist eine Anweisung bei der sich nichts tut.
Wie müsste es denn genau richtig sein, davon ausgehend, dass ich den Namen aus einem Formular bekomme, die Nummer jedoch erst im nachfolgenden Teil mache.
Du möchtest also ein Array haben, das als Elemente weitere Arrays haben soll, die zunächst nur ein Element mit dem Schlüssel 'name' haben sollen und im weiteren Verlauf noch ein Element mit dem Schlüssel 'nummer' hinzubekommen sollen.
$das_array = array();
wird zunächst als komplett leer angelegt. Damit ist es auf alle Fälle ein Array, auch wenn keine Elemente hinzugefügt werden. Ein foreach darauf ergibt auch keine Warnung der obigen Art.
$das_array[] = array('name' => 'jojo');
Ein Element hinzufügen, das ein Array mit einem 'name'-Schlüssel und einem Wert ist. Der Schlüssel des Elements in $das_array ist beim ersten Element 0 und bei weiteren fortlaufend hochgezählt.
Auf das erste Element von $das_array greift man also mit $das_array[0] zu. Auf Elemente des in $das_array[0] stehenden Arrays greift man mit $das_array[0][schlüsselname] zu - lesend und schreibend, auch anlegend.
$das_array[0]['nummer'] = 42;
ergänzt das so, als ob jemand
$das_array[0] = array('name' => 'jojo', 'nummer' => 42);
notiert hätte. All das kannst du mit Kontrollausgaben (var_dump() oder auch print_r()) schön verfolgen.
Sinnvoll ist es sicher, das 'nummer'-Element gleich von Anfang an zu berücksichtigen und mit einem Dummy-Wert zu belegen, der später überschrieben werden kann. Ansonsten wäre bei jedem Lesezugriff eine Existenzprüfung à la Tom angebracht.
$das_array[] = array('name' => 'jojo', 'nummer' = 0);
echo "$verabschiedung $name";