echo $begrüßung;
aus einer Datenbankabfrage muss ich einige zusammengehörende Zeilen sammeln und an eine Funktion übergeben. Kann ich mich darauf verlassen, dass auch die Spaltennamen mit übergeben werden?
Vertrauen ist schlecht. Kontrolle wäre angebracht.
Schau doch einfach nach, was in dem Array drin ist. Dazu eignen sich Funktionen wie print_r() und var_dump(), am besten mit einem <pre> davor.
while ( $row_besucher = mysql_fetch_array( $result_besucher )) {
$arr_besucher[] .= $row_besucher;
Der Punkt-Operator verkettet Strings. $row_besucher ist aber ein Array. Durch die automatische Typumwandlung wird $row_besucher zu einem String gecastet. Wenn ein Array in einen String gewandelt wird ergibt das aber nur ein "Array". Arrays sind einfach zu komplex, um sie mit einer allgemeingültigen Prozedur in einen String wandeln zu können.
Ein Array mit echo ausgeben zu wollen ergibt aus ebendiesem Grund auch nur ein "Array".
Wenn du den Punkt weglässt wird das Array $row_besucher als neues Element an $arr_besucher angehängt.
for ( $i=0; $i<count($arr_besucher); $i++ ) {
Um über alle Elemente eines Arrays zu iterieren ist foreach besser geeignet.
echo "$verabschiedung $name";