Pregunta

I'm trying to use the str_replace() function with an array of strings.

My problem is that some strings in my array contains another string.

Here is an example:

I have a category of products such as:

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

And I want to transform all of them into co.

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

The result is:

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

I could just change the order in the array, but I have too many categories.

Is there a function that could help me achieve the desired result?

¿Fue útil?

Solución

Take a look at the regular expression based replacements, search for \bCOLLIER\b to replace with co. That way you're finding word boundaries on each side of the search word, so you shouldn't have sub-word issues.

Alternately (since I don't fully understand your problem) sort your list by length, longest first.

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

Otros consejos

Based on your code, you should revise it to (list it by longer string first):

str_replace(array("COLLIERPEND", "COLLIER"), 'co', $product#);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top