我有一个包含重音字母的单词(城市名称)。我有一个函数,检查城市名称是否在一个数组中,如果它是将返回一个值(如果不是将返回另一个值)。 即使城市在那里,该单词也不会与阵列中的任何城市(带重音)匹配。我打印出它们并且它们显示正确(没有奇怪的字符而不是重音)。 它可能是什么? 感谢
function SearchPV($city){
require('PV_CAP_Array.php');
$city = str_replace(" ", "", $city);
$city = str_replace("\'","", $city);
foreach($CAP_PV_ARRAY as $key=>$value){
if(strtolower($city) == strtolower($key))
return 'VR';
else
return "PV != VR";
}
}
数组:
$CAP_PV_ARRAY=array('affi'=>'37010',
'dolcè'=>'37020'
};
修改
我删除了else语句并且它有效(即使我不知道为什么)。似乎返回不会打破循环(它正在评估其他选项并返回“PV!= VR”
工作代码
foreach($CAP_PV_ARRAY as $key => $value){
if(strtolower($city) == strtolower($key))
return "VR";
}
答案 0 :(得分:0)
关于return
语句,在原始代码中:
function SearchPV($city) {
require('PV_CAP_Array.php');
$city = str_replace(" ", "", $city);
$city = str_replace("\'","", $city);
foreach($CAP_PV_ARRAY as $key=>$value){
if(strtolower($city) == strtolower($key))
return 'VR';
else
return "PV != VR";
}
}
它只会检查数组中的第一项,因为VR
/ PV != VR
会返回if
或else
。您可能打算执行更多类似以下内容的操作,如果任何条目匹配,它将返回VR
,否则返回PV != VR
:
function SearchPV($city) {
require('PV_CAP_Array.php');
$city = str_replace(" ", "", $city);
$city = str_replace("\'","", $city);
foreach($CAP_PV_ARRAY as $key=>$value){
if(strtolower($city) == strtolower($key))
return 'VR';
}
return "PV != VR";
}