我正在尝试将str_replace()
函数与字符串数组一起使用。
我的问题是我的数组中的某些字符串包含另一个字符串。
以下是一个例子:
我有一类产品,例如:
$product1 = 'COLLIERPEND';
$product2 = 'COLLIER';
我想将所有这些转换为co
。
str_replace(array("COLLIER", "COLLIERPEND"), 'co', $product#);
结果是:
$product1 = 'coPEND';
$product2 = 'co';
我可以改变数组中的顺序,但是我的类别太多了。
是否有可以帮助我达到预期效果的功能?
答案 0 :(得分:1)
查看regular expression based replacements,搜索\bCOLLIER\b
以替换为co。这样你就可以在搜索词的每一边找到单词边界,所以你不应该有子词问题。
或者(因为我不完全理解你的问题)按长度排序列表,最长的。
答案 1 :(得分:1)
根据您的代码,您应该将其修改为(首先按较长的字符串列出):
str_replace(array("COLLIERPEND", "COLLIER"), 'co', $product#);