下面的str_replace()函数怎么可能返回biWeekly而不是每隔一周?
$payFrequency = "biweekly";
$postData['payFrequency'] = str_replace(array('weekly','biweekly','twicemonthly','monthly'),array('Weekly','Every Other Week','Twice a Month','Monthly'), $payFrequency, $cnt);
echo "$cnt {$postData['payFrequency']}'n"; // SHOWS 1 biWeekly
您应该交换两个数组中的第一个和第二个项。
$payFrequency = "biweekly";
$postData['payFrequency'] = str_replace(array('biweekly','weekly','twicemonthly','monthly'),array('Every Other Week','Weekly','Twice a Month','Monthly'), $payFrequency, $cnt);
echo "$cnt {$postData['payFrequency']}'n"; // SHOWS 1 biWeekly
这是可行的。
它用"weekly"替换了"biweekly"中的"周",之后它就不再匹配"biweek"了。
因为每两周包含"weekly",这是数组中的第一个匹配项
array('weekly','biweekly','twicemonthly','monthly')
因此,它先转换后返回。
您可以交换您的替换订单:
$payFrequency = "biweekly";
$postData['payFrequency'] = str_replace(
array('biweekly','weekly','twicemonthly','monthly'), // biweekly then weekly
array('Every Other Week','Weekly','Twice a Month','Monthly'), $payFrequency, $cnt
);
echo "$cnt {$postData['payFrequency']}'n";
str_replace
区分大小写,因此biweekly
会被替换,但biWeekly
不会。如果要进行不区分大小写的替换,请使用str_ireplace
。