2012-03-29 111 views
0

这怎么可能是str_replace()函数低于收益双周,而不是每个其他周的功能?str_replace()函数作出错误的更换

$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

我更新了它;原始字符串是$ payFrequency – Steve 2012-03-29 02:21:23

回答

0

str_replace是大小写敏感的,所以biweekly被替换,但biWeekly没有。如果您想要不区分大小写的替换,请使用str_ireplace

+0

虽然你是对的,但这里完全没有关系。 – iehrlich 2012-03-29 02:24:53

+0

它工作得很好thx! – Steve 2012-03-29 02:24:54

+0

@Stephane Kouakou它能解决您的问题吗? – jeroen 2012-03-29 02:28:20

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

因为双周包含“周刊”,这是阵列

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"; 
2

它取代了“双周”的“周刊”与“周末画报”,为后来不匹配“双周”了。