我有一个包含重音字母的单词(城市名称)。我有一个函数可以检查城市名称是否在数组中,如果是,将返回一个值(如果不是,则返回另一个值)。即使城市在那里,该单词也不会匹配数组中的任何城市(带重音)。我打印了它们,它们都显示正确(没有奇怪的字符而不是重音)。可能是什么?谢谢
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";
}
关于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
或由于if
/else
而PV != VR
。 您可能打算执行类似以下内容的操作,如果任何条目匹配,它将返回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";
}