以下 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
答案 0 :(得分:2)
您应该交换两个数组中的第一个和第二个项目。
$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
这会奏效。
答案 1 :(得分:2)
它将“每周一次”中的“每周”替换为“每周”,之后不再与“双周”相匹配。
答案 2 :(得分:1)
因为双周包含“每周”,这是你在数组中的第一个匹配
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";
答案 3 :(得分:0)
str_replace
区分大小写,因此biweekly
会被替换,但biWeekly
则不会。如果您想要不区分大小写的替换,请使用str_ireplace
。