3v4l.org

run code in 300+ PHP versions simultaneously
<?php function make_ascii($str) { //return $str; $special = array('ľ','š','č','ť','ž','ý','á','í','é','ú','ä','ô','ň','ě'); $ascii = array('l','s','c','t','z','y','a','i','e','u','a','o','n','e'); $str = array_map(function ($i) use ($str) { return mb_substr($str, $i, 1); }, range(0, mb_strlen($str) -1)); //var_dump($str); foreach ($str as $k => $c) { if(ctype_upper($c)) { $u = true; $c = strtolower($c); } else { $u = false; } // print_r($c); if(in_array($c, $special)) { $c = $ascii[array_search($c, $special)]; } if($u) { $c = strtoupper($c); } $str[$k] = $c; } return join($str); } var_dump(make_ascii('áé'));

preferences:
26.89 ms | 415 KiB | 5 Q