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 <[EMAIL PROTECTED]>:
>>
>>> 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.
>