Mailinglisten-Archive |
Sascha Emondts wrote: <snip/> >>>$keywords = array(); >>>$words = explode(" ", $text); >>>foreach ($words AS $word) { >>> $firstchar = substr($word, 0, 1); >>> if (strToUpper($firstchar) == $firstchar) { >>> $keywords[] = $word; >>> } >>>} > > <snip/> > > die Anforderung "alle einmal vorkommenden" ist hier noch nicht bedient. > Könnte man über einen Wortzähler im Array machen: Stimmt, das habe ich überlesen. Deine Lösung ist allerdings ein wenig zu Resourcen intensiv. (Ist IMO nicht sinnvoll wegen der Laufzeit). $keyword_in = array(); $keywords = array(); $words = explode(" ", $text); foreach ($words AS $word) { $firstchar = substr($word, 0, 1); if (strToUpper($firstchar) == $firstchar) { if (!isset($keyword_in[$word])) { $keyword_in[$word] = true; $keywords[] = $word; } } } unset($keyword_in); In diesem Fall wird in dem Array $keyword_in einfach nur einmal das gefundene Substantiv-Wort als Schlüssel gesetzt. Sollte es später ein zweites Mal im String vorkommen, wird das durch die if (isset()) Bedingung erkannt und nicht nochmals zu dem Array $keywords hinzugefügt. Das ist weit weniger aufwendig als die Lösung mittels *sort() Funktionen zu basteln, da hier das Array nicht zweimal aufgebaut wird, was bei Saschas Lösung der Fall ist. -- Dennis Sterzenbach http://www.darknoise.de/
php::bar PHP Wiki - Listenarchive