Php 替换无效字符

Php 替换无效字符,php,str-replace,Php,Str Replace,我想替换一些无效字符,我有一个包含对应关系的数组: $map = array( "à" => "a", "è" => "e", "ì" => "i", "ò" => "o", "ù" => "u" ); 我想使用函数str\u replace($pattern,$replacement,$string),但我无法得出结论。如何继续?如何使用for循环处理字符串变量的每个索引,并为每个索引应用replace函数 theStri

我想替换一些无效字符,我有一个包含对应关系的数组:

$map = array(
    "à" => "a",
    "è" => "e",
    "ì" => "i",
    "ò" => "o",
    "ù" => "u"
);

我想使用函数
str\u replace($pattern,$replacement,$string)
,但我无法得出结论。如何继续?

如何使用for循环处理字符串变量的每个索引,并为每个索引应用replace函数

theString = "whatever"
String[] = theString.split();

for(int i=0; i<String[].length; i++){
   char tmp  = String[i].toChar();

   if(map.containsKey(tmp)){
      char replace = map.getValue(tmp);
      tmp = replace;
      String[i] = tmp.toString();
   }

 }
theString=“随便什么”
String[]=theString.split();
对于(inti=0;我希望它有帮助

function sanitize($string) {
    $string = str_replace(
        array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'),
        array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'),
        $string
    );

    $string = str_replace(
        array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ê', 'Ë'),
        array('e', 'e', 'e', 'e', 'E', 'E', 'E', 'E'),
        $string
    );

    $string = str_replace(
        array('í', 'ì', 'ï', 'î', 'Í', 'Ì', 'Ï', 'Î'),
        array('i', 'i', 'i', 'i', 'I', 'I', 'I', 'I'),
        $string
    );

    $string = str_replace(
        array('ó', 'ò', 'ö', 'ô', 'Ó', 'Ò', 'Ö', 'Ô'),
        array('o', 'o', 'o', 'o', 'O', 'O', 'O', 'O'),
        $string
    );

    $string = str_replace(
        array('ú', 'ù', 'ü', 'û', 'Ú', 'Ù', 'Û', 'Ü'),
        array('u', 'u', 'u', 'u', 'U', 'U', 'U', 'U'),
        $string
    );

    $string = str_replace(
        array('ñ', 'Ñ', 'ç', 'Ç'),
        array('n', 'N', 'c', 'C',),
        $string
    );


    return strtolower($string);
}

我找到的解决方案是使用函数strtr(string$str,array$arr)

具有一个数组,如上面提到的:

$map = array(
    "à" => "a",
    "è" => "e",
    "ì" => "i",
    "ò" => "o",
    "ù" => "u"
);
我只是这样做:

$string = "àaaaàèììkkekeou";
$new_string = strtr($string, $map);
结果是:
$new\u string->“aaaaaaa eiikkekeou”

有关函数的详细信息:

请尝试
str\u replace(array\u keys($map)、array\u values($map)、$string);
或者只需
str\u replace(array\u keys($map)、$map,$string);
这也可能有帮助: