dedlfix: 2 Arrays zu einem verbinden array1= key array2=wert

Beitrag lesen

echo $begrüßung;

möchte ein Array mit einem anderen Array vergleichen und ein neues Array erstellen, dass nur die Keys berücksichtigt die in array1 als Wert vorhanden sind. Ich glaube ein Beispiel sagt mehr als tausend Worte:
Natürlich könnte ich eine Schleife nutzen, aber ich bin mir eigentlich sicher die gleiche Aufgebenstellung schon mal anders gelöst zu haben, komme aber nicht mehr drauf. Eine Idee?

Es gibt diverse Array-Funktionen mit intersect (und uintersect) im Namen. Die vergleichen aber nur Keys mit Keys, Werte mit Werten aber nicht gemischt. Du könntest mit einer Key-vergleichenenden und Benutzervergleichsfunktion aufrufenden Variante was zaubern. Das ist aber nicht besonders schön, weil die Benutzervergleichsfunktion sich das Werte-Array beschaffen muss (dazu muss es global rumliegen oder du musst was objektorientiertes bauen), damit es von dem übergebenen Key den Wert nachschlagen kann. Eine Alternative ist, eins der Arrays zu flippen (wobei du aber aufpassen musst, dass die Werte eindeutig sind, sonst gehen Elemente verloren) und dann eine intersect-Funktion anwenden.

echo "$verabschiedung $name";