Pues sencillo:
in_array, lo que hace es verificar si un valor dado está dentro de un array especificado,
array_keys, quiere decir que solo trabaje con las claves del array, asi no busca tanto en las claves como valores, en seudónimo:
busco $_GET en las claves del array $acentos, si es verdadero pues devuelvo el valor del array con la clave que coincide con $_GET de lo contrario me devuelva $_GET, que en este caso serían los números, consonantes y caractere especiales, el código anterior equivale:
Código PHP:
Ver originalhttp://www.pagina.com/index.php?letter=b
//$_GET['letter'] = 'b';
$letter = in_array('b',array('a','e','i','o','u')) ?
$acentos['b'] : 'b'; //como b no esta en el array simplemente devolvemos la letra b
http://www.pagina.com/index.php?letter=i
//$_GET['letter'] = 'i';
$letter = in_array('i',array('a','e','i','o','u')) ?
$acentos['i'] : 'i'; //como i sí está en el array entonces devolvemos el valor de la clave "i" que es 'i|í' que en expresiones regulares significa que buscará tanto como i sin tilde que con tilde.
Espero te sea de aclaracón,
Saludos.