Here is my script
$searchArray = array(\"Coupon Codes\", \"Coupon Code\", \"Promo\", \"Promo Codes\");
$replaceArray = array(\"Promo Code\", \"Promo Codes\", \"
The reason for your unexpected result is that str_replace will first replace "Coupon Codes" with "Promo Code" and then it will later substitute "Promo" with "Coupons". To work around this, use the array form of strtr, which will process the longest strings first, but most importantly will not substitute into any previously substituted text. e.g.
$searchArray = array("Coupon Codes", "Coupon Code", "Promo", "Promo Codes");
$replaceArray = array("Promo Code", "Promo Codes", "Coupons", "Coupon Code");
$intoString = "Best Buy Coupon Codes";
// this doesn't work
echo str_replace($searchArray, $replaceArray, $intoString);
// this does
echo strtr($intoString, array_combine($searchArray, $replaceArray));
Output:
Best Buy Coupons Code
Best Buy Promo Code