PHP 大小写和重音不敏感搜索到数组中

Fid*_*Boy 4 php arrays string search

我有一个包含单词的数组,其中一些带有重音符号。我想测试给定的单词是否在该数组中,但使其不区分大小写和重音。例如:

$array = array("coche","camión","moto","carro");
Run Code Online (Sandbox Code Playgroud)

我想要一个简单的小功能,比如in_array. 如果我的字符串是'Camion'或者'camión'它应该返回true.

有任何想法吗?

Nea*_*eal 5

试试这个::-D

function check_array($array, $string){
   $trans = array("é" => "e", "é" => "e", "á" => "a", "á" => "a", "í" => "i","í"=>"i", "ó"=>"o", "ó" => "o", "ú" => "u", "ú"=>"u","ö" => "u", "ü"=>"u");
   $realString = strtr($string,$trans);
   foreach($array as $val){
      $realVal = strtr($val,$trans);
      if(strcasecmp( $realVal, $realString ) == 0){
         return true;
      }
   }
   return false;
}
Run Code Online (Sandbox Code Playgroud)

所以要使用它:

check_array($array, 'Camion');
Run Code Online (Sandbox Code Playgroud)

使用strcasecmp按照费利克斯克林建议