Re: str_replace on words with an array

From: Date: Mon, 30 Oct 2006 16:17:46 +0000
Subject: Re: str_replace on words with an array
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-243890@lists.php.net to get a copy of this message
Dotan Cohen wrote: > I need to remove the noise words from a search string. I can't seem to > get str_replace to go through the array and remove the words, and I'd > rather avoid a redundant foreach it I can. According to TFM > str_replace should automatically go through the whole array, no? Does > anybody see anything wrong with this code: > > $noiseArray = array("1", "2", "3", "4", "5", > "6", "7", "8", "9", "0", > "\"", "'", ":", ";", "|", > "\\", "<", ">", ",", ".", "?", > "$", "!", > "@", "#", "$", "%", "^", "&", > "*", "(", ")", "-", "_", "+", > "=", "[", > "]", "{", "}", "about", "after", > "all", "also", "an", "and", > "another", "any", "are", "as", "at", > "be", "because", "been", > "before", "being", "between", "both", "but", > "by", "came", "can", > "come", "could", "did", "do", "does", > "each", "else", "for", "from", > "get", "got", "has", "had", "he", > "have", "her", "here", "him", > "himself", "his", "how", "if", "in", > "into", "is", "it", "its", > "just", "like", "make", "many", "me", > "might", "more", "most", "much", > "must", "my", "never", "now", "of", > "on", "only", "or", "other", > "our", "out", "over", "re", "said", > "same", "see", "should", "since", > "so", "some", "still", "such", "take", > "than", "that", "the", "their", > "them", "then", "there", "these", "they", > "this", "those", "through", > "to", "too", "under", "up", "use", > "very", "want", "was", "way", "we", > "well", "were", "what", "when", "where", > "which", "while", "who", > "will", "with", "would", "you", "your", > "a", "b", "c", "d", "e", "f", > "g", "h", "i", "j", "k", "l", > "m", "n", "o", "p", "q", "r", > "s", "t", > "u", "v", "w", "x", "y", "z"); > > $searchQuery=str_replace( "^".$noiseArray."$", " ", > $searchQuery); // another idea based on further reading of the thread: function pregify($val) { foreach ((array)$val $k as $v) $val[$k] = '\b'.preg_quote($v).'\b'; return $val; } $searchQuery = preg_replace(pregify($noiseArray), " ", $searchQuery); > > Thanks in advance. > > Dotan Cohen > > http://essentialinux.com > http://what-is-what.com/what_is/sitepoint.html >

« previous php.general (#243890) next »