Axel Richter: Assoziatives Array auslesen

Beitrag lesen

Hallo,

wieso benimmt sich das auslesen und ersetzen so komisch?

Nicht komisch. So, wie Du es programmiert hast.

Habe es mal geändert:

$string="Wert #EINS# und wert #ZWEI# und wert #DREI# oder doch wert #ZWEI# ?";
$array=array(
  "#EINS#"=>"220",
  "#ZWEI#"=>"260",
  "#DREI#"=>"300"
);
foreach($array as $halter => $wert)
{
   $änderung=str_replace($halter,$wert,$string);

^Das meinst Du jetzt nicht ernst?

}
  echo $änderung;

Ausgabe:
Wert #EINS# und wert #ZWEI# und wert 300 oder doch wert #ZWEI# ?

Es wird immer nur ein Wert ersetzt, ich verstehe echt nichts mehr...

Ja, immer der letzte im Array und somit der letzte in der Schleife. Allerdings werden vorher auch die anderen Werte ersetzt. Du siehst es aber nicht, weil Du ja $änderung in jedem Schleifendurchlauf mit der aktuellen Ersetztung in $string überschreibst und $string sich ja nie ändert.

viele Grüße

Axel