为了找出数组中是否存在 UTF-8 不区分大小写的子字符串,我发现这种方法会比使用 mb_strtolower 或 mb_convert_case 快得多:
将数组内插为字符串:$imploded=implode(" ", $myarray);.
-
使用自定义函数将内爆字符串转换为小写:
$lowercased_imploded = to_lower_case($imploded);
函数 to_lower_case($str)
{
$from_array=["A","B","C","D","E","F","G","H","I","J","K" ,"L","M","N","O","P","Q","R","S","T","U","V","W"," X","Y","Z","Ä","Ö","Ü","Õ","Ž","Š"];
$to_array=["a","b","c","d","e","f","g","h","i","j","k" ,"l","m","n","o","p","q","r","s","t","u","v","w"," x","y","z","ä","ö","ü","õ","ž","š"];
foreach($from_array as $key=>$val){$str=str_replace($val, $to_array[$key], $str);}
返回 $str;
}
- 使用普通 strpos 搜索匹配:if(strpos($lowercased_imploded, "substring_to_find")!==false){do something}