2014-05-10 41 views
0

话我有一个数组 $c=array("ok","and","or")$str="i am ok and fine" 现在我想从$ C数组元素脱衣$海峡,使$str="i am fine" 我怎样才能做到这一点?取下字符串包含在阵列

+0

'$结果= str_replace函数($ C, '',$ STR);'用于一个简单的字符的去除,否则使用'的preg_replace()' –

+0

'$结果= str_replace函数($ C, '', $ str);' 尝试了此操作,但也删除了单词中的单个字符。 – HackerManiac

+0

这就是为什么我在评论中说“简单化”的原因;所以如果你特别想要'单词'使用preg_replace并修改你的单词数组以包括'单词边界'.....当在这里提问时,如果你说出你已经尝试过的内容, t为你服务 –

回答

1

这里有两件事。一个是编辑字符串以删除你提到的单词。另一个是对字符串进行操纵以逐字处理它。如果你只是做字符替换,你会得到额外的空间。

所以尝试这样的事情。未调试。

$q = explode(' ',$str); /* turn string into list of words */ 
$r = array(); 
foreach ($q as $w) {  /* check the words */ 
    if (!in_array($w,$c)) { 
    $r[] = $w; 
    } 
} 
$str = implode(' ',$r); /* turn new list of words back into string */