Axel Richter: Assoziatives Array auslesen

Beitrag lesen

Hallo,

und was soll das jetzt bedeuten?

$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)
{
   $aenderung=str_replace($halter,$wert,$string);
}
  echo $aenderung;

Gehen wir die Schleife mal durch:
"#EINS#"=>"220"
$aenderung=str_replace("#EINS#","220",$string);
in $aenderung steht jetzt:
Wert 220 und wert #ZWEI# und wert #DREI# oder doch wert #ZWEI# ?
$string ändert sich nicht.

"#ZWEI#"=>"260"
$aenderung=str_replace("#ZWEI#","260",$string);
in $aenderung steht jetzt:
Wert #EINS# und wert 260 und wert #DREI# oder doch wert 260 ?
$string ändert sich nicht.

"#DREI#"=>"300"
$aenderung=str_replace("#DREI#","300",$string);
in $aenderung steht jetzt:
Wert #EINS# und wert #ZWEI# und wert 300 oder doch wert #ZWEI# ?
$string ändert sich nicht.

_Jetzt_ gibst Du $aenderung aus.

Wie kann ich mir den "fertigen" string anzeigen lassen?

Indem Du $string mit jeder Ersetztung so anpasst, dass es sich die jeweilige Ersetzung merkt.

$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)
{

$string=str_replace($halter,$wert,$string);

}
  echo $string;

Wenn $string erhalten bleiben soll, muss die Hilfsvariable $aenderung _vor_ der Schleife den String übergeben bekommen und sich dann _in_ der Schleife wirklich jede Ersetzung merken.

$aenderung = $string;

foreach($array as $halter => $wert)
{

$aenderung=str_replace($halter,$wert,$aenderung);

}
  echo $aenderung;

viele Grüße

Axel