dedlfix: Wie kann ich zwei 2-dimensionale arrays spaltenweise verbinden?

Beitrag lesen

echo $begrüßung;

Es reicht, wenn du die Schlüssel beim foreach über $data mit berücksichtigst und damit auf den korrespondierenden Eintrag in $zugabe zugreifst.

Tut mir leid, mit der Antwort kann bei meinem derzeitigen Wissenstand (7. Tag php-Versuche im Alleingang) nichts anfangen.

Leid tun muss es dir nicht. Wichtig ist, dass du konkret nachhakst, wenn du etwas nicht verstehst. Und das hast du ja gemacht:

Wie wird erreicht, dass die Schlüssel von $data mit berücksichtigt werden?

Wenn es um foreach geht, wäre ein erster Blick auf die Handbuchseite zu foreach nicht verkehrt.

Wo kann ich das nachsehen, bei den array funktionen im php Handbuch (online)?

Handbuch -> Language Reference -> Control Structures -> foreach. Und siehe da, es gibt zwei Syntax-Formen. Eine davon stellt neben dem Wert auch den Schlüssel zur Verfügung.

Und welches array kommt dafür in Frage?

Im Prinzip ist es egal, wenn beide Arrays gleich viel Einträge enthalten. Ansonsten müsstest du sie erst zählen lassen und dann das Array mit den meisten Einträgen verwenden. Vor dem Zugriff auf das andere Array solltest du aber mit isset() prüfen, ob es dort ein korrespondierendes Element gibt.

Gibt es dann nur eine foreachschleife und enthält list dann die Aufzählung aller vier auszugebenen Spalten?

Du benötigst dann nur eine foreach-Schleife. list() benötigst du gar nicht.

Du hättest, so schreibst du im Ausgangsposting, ein zweidimensionales Array (bzw. zwei). Es ist ungünstig, von mehrdimensional zu sprechen, denn so etwas gibt es unter PHP im Prinzip nicht. Stattdessen hast du vielmehr ein Array, das als Werte weitere Arrays enthält. Durch diese Verschachtelung kannst du zwar mehrdimensionale Datenstrukturen abbilden, aber es bleibt am Ende ein Array mit Arrays. Das ist sehr schön zu sehen, bei einer Kontrollausgabe mit print_r() oder var_dump() (vorher noch ein <pre> erhöht die Übersichtlichkeit der Darstellung):

print_r($data);

Du läufst nun durch dein eines Array

foreach ($data as $key => $value)

und erhältst in $value jeweils einen der Werte, und der enthält eins der inneren Arrays. Auf dessen Elemente greifst du nun wie bei Arrays üblich mit $value[0], $value[1] und so weiter zu (wenn es sich um nummerische Schlüssel handelt).

Für den Zugriff auf das passende innere Array in $zugabe kannst du $key als Schlüssel verwenden: $zugabe[$key]. Die einzelnen Werte bekommst du durch Anhängen von [0], [1] usw.

Wenn du wissen willst, was $key enthält, kannst du eine Kontrollausgabe mit var_dump() vornehmen.

echo "$verabschiedung $name";