This is a much better solution. I didn't realise that str_replace() accepted arrays as arguments for the search and replace terms. Mental note: reading mailing lists backwards doesn't work. Robert Cummings wrote: > On Tue, 2007-11-06 at 23:24 -0300, Martin Alterisio wrote: > >> 2007/11/6, Alberto García Gómez <alberto@xxxxxxxxxxxxxxxxx>: >> >>> I'm a mess in regular expressions and I make this code: >>> >>> $link = ereg_replace('ñ','n',$link); >>> $link = ereg_replace('á','a',$link); >>> $link = ereg_replace('é','e',$link); >>> $link = ereg_replace('í','i',$link); >>> $link = ereg_replace('ó','o',$link); >>> $link = ereg_replace('ú','u',$link); >>> >>> I ask if is a way to make those lines into a single one but working as >>> well as this piece. I'm thinking in increase those lines so will be >>> wonderful if I can optimize the code. >>> > > <?php > > $map = array > ( > 'ñ', 'n', > 'á', 'a', > 'é', 'e', > 'í', 'i', > 'ó', 'o', > 'ú', 'u', > ); > > $link = > str_replace( > array_keys( $map ), array_values( $map ), $link ); > > ?> > > The only way to make it faster is to build the key array and value array > separately, but then the association is not so clear. > > Cheers, > Rob. >