Hi Andreas,
Mein spontaner Ansatz:
... (als Trenner eine Zeichenklasse der unerwünschten Zeichen, die ein oder mehrfach auftreten können).
damit hast du mich ja wieder vor Probleme gestellt...!(Ich schrieb ja bereits, dass mir die 'Konstruktion' von Regexps noch fast gänzlich unbekannt ist.)
Die Array-Elemente als keys für ein assoziatives Array verwenden (als Wert einfach die 1 oder ähnliches verwenden, wird eh nicht gebraucht).
Wiederholen mit var2, dabei dasselbe assoziative Array verwenden (jetzt werden evtl. schon vorhandene keys nicht erneut angelegt).
Wiederholen mit var3, var4, ...Zum Schluß mit array_keys die keys aus dem assoziativen Array rausholen.
cu,
Andreas
Angeregt durch deinen Vorschlag, habe ich jetzt folgenden Ansatz gewählt (, der zu funktionieren scheint):
Schritt 1:
Ich führe alle 4 Strings zu einem zusammen (mit jeweils einem Leerzeichen dazwischen)
$var_neu_1=$var_1." ".$var_2." ".$var_3." ".$var_4;
Schritt 2:
Unter Verwendung der Funktion 'preg_split' zerlege ich nun den so gewonnenen String mit Hilfe der von dir erwähnten Trenner (als Trenner eine Zeichenklasse der unerwünschten Zeichen, die ein oder mehrfach auftreten können)
$var_neu_2= preg_split('/[\s,|\s||[|]|\*|{|}|?]+/', $var_neu_1, -1, PREG_SPLIT_NO_EMPTY);
Schritt 3:
Das so entstandene Array enthält jetzt noch die doppelten Einträge. Diese eleminiere ich jetzt mit Hilfe der Funktion 'array_unique' (da für mich ja eh nur die Werte und nicht die Schlüssel des Arrays interessant sind)
$result = array_unique($var_neu_2);
Fertig!
Wahrscheinlich runzeln die PHP Experten unter euch jetzt die Stirn, daher wäre es nett, wenn mir jemand noch ein paar Tipps, insbesondere zu dem Regexp in Schritt 2 geben könnte (folgende Zeichen sollen eleminiert werden: [,],|,{,},Leerzeichen,*,?).
Vielen Dank!
Gruß Gunther
c't Wettbewerb: SEO «» Search Engine Optimization «» Suchmaschinenoptimierung