2012-03-29 113 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

它取代了「雙週」的「週刊」與「週末畫報」,爲後來不匹配「雙週」了。