str_replace字符串和类似的字符串

时间:2013-06-20 18:28:22

标签: php string replace strict

我正在尝试将str_replace()函数与字符串数组一起使用。

我的问题是我的数组中的某些字符串包含另一个字符串。

以下是一个例子:

我有一类产品,例如:

$product1 = 'COLLIERPEND';
$product2 = 'COLLIER';

我想将所有这些转换为co

str_replace(array("COLLIER", "COLLIERPEND"), 'co', $product#);

结果是:

$product1 = 'coPEND';
$product2 = 'co';

我可以改变数组中的顺序,但是我的类别太多了。

是否有可以帮助我达到预期效果的功能?

2 个答案:

答案 0 :(得分:1)

查看regular expression based replacements,搜索\bCOLLIER\b以替换为co。这样你就可以在搜索词的每一边找到单词边界,所以你不应该有子词问题。

或者(因为我不完全理解你的问题)按长度排序列表,最长的。

http://www.regular-expressions.info/wordboundaries.html

答案 1 :(得分:1)

根据您的代码,您应该将其修改为(首先按较长的字符串列出):

str_replace(array("COLLIERPEND", "COLLIER"), 'co', $product#);