将字符串与重音匹配

时间:2014-12-03 15:23:01

标签: php

我有一个包含重音字母的单词(城市名称)。我有一个函数,检查城市名称是否在一个数组中,如果它是将返回一个值(如果不是将返回另一个值)。 即使城市在那里,该单词也不会与阵列中的任何城市(带重音)匹配。我打印出它们并且它们显示正确(没有奇怪的字符而不是重音)。 它可能是什么? 感谢

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

1 个答案:

答案 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会返回ifelse。您可能打算执行更多类似以下内容的操作,如果任何条目匹配,它将返回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";
}