nordlicht: Ersetzungen in einem String

Beitrag lesen

Grüße euch!

ich habe einen String in dem ich IN MANCHEN Fällen was ersetzten möchte.
Beispiel (ok, ziemlich abstrakt, aber es geht nur ums Prinzip ;-)

$string = 'Hallo mein Name ist Hans'

kommt im String 'Hans', 'Sepp', 'Herbert' vor, sollen diese Wörter mit 'München'  ersetzt werden.

kommt im String 'Susi', 'Heidi', 'Iris' vor, sollen diese Wörter mit 'Hamburg' ersetzt werden.

so geht das weiter mit ca. 100*3 Ersetzungsmöglichkeiten.

  • Im String kommt entweder keiner dieser Namen vor oder genau einer (und nicht 2 oder mehr).
  • Jede Namenszuordnung ist eindeutig, also 'Hans' wird nur mit 'München' ersetzt. Man kann  die weitere Suche im Skript abbrechen.

Anhand dieser Rahmenbedingungen blick ich da nicht durch wie ich das am geschicktesten machen soll, vor allem damit da ich nicht unnötige IF-Abbfragen und str_replace in einer Schleife verwenden möchte, wenn die Ersetzung schon erfolgte. Oder unnötig aufgeblasene Arraydefinitionen.

In den Sinn kamen mir eben str_replace, mit dem man ja Arrays für Suche und Ersetzung übergeben kann. Dort müßte ich aber jede Stadt 3 mal definieren, z.B. jeweils 'München'  (für Hans, Sepp, Herbert). Ist also ev. unnötige Mehrfachdefinition?

oder eine Variante mit der switch-Anweisung?

oder auch per Zuordnung/Ersetzung mit einem assoziativen Array?
   "Hans"    => "München"
   "Sepp"    => "München"
   "Herbert" => "München"