XaraX: preg_replace: Ergebnis in Array verwenden

Beitrag lesen

Hallo Heizer,

Also einfach gesagt: Er soll "ab" und "ba" finden, aber nicht "aa" oder "bb". Ich weiß natürlich daß ich hier (ab|ba) schreiben könnte, aber wenn ich a und b durch komplexe Ausdrücke ersetze, dann wird das sehr sehr komplex. Wenn ich aber (a|b){2} schreibe, dann findet er eben auch "aa". Vielleicht weiß du da ja auch irgendeinen ganz einfach Trick...

so banal das auch aussehen mag:

Definition der zu ersetzenden Werte:

$such=array(
     'ww'=>'ab',
     'WW'=>'ba',
     'gb'=>'cd',
     'bg'=>'dc');

Definition der Basisdaten

$data=hole_DB_data_als_array();

Prüfen

foreach($data as $key=>$value)
   foreach($such as $k=>$v)
      $pruef[$key][$k]=str_replace($k,$v,$value);

Egal wie die Daten zu ersetzen sind, nach "Prüfen" hast Du in Form des aufgebauten Datenfeld $pruef immer noch den Bezug zu allem, was bereits geschen ist.

1.)  Für Anpassungen der Suche ist dies ein erheblich
       einfacher zu haltendes Verfahren, das ohne Kom-
       mentierung überschaubar bleibt.

2.)  Für spätere Anpassungen halte ich es für nicht
       Unerhelblich immer den Bezug innerhalb $pruef zu
       haben.

3.)  Mach mal ein Benchmark.

Gruß aus Berlin!
eddi