Re: strpos() before str_replace()? Or, maybe strtr()? [message #184931 is a reply to message #184929] |
Sun, 16 February 2014 20:51 |
Ben Bacarisse
Messages: 82 Registered: November 2013
Karma:
|
Member |
|
|
"J.O. Aho" <user(at)example(dot)net> writes:
> On 16/02/14 21:24, Ben Bacarisse wrote:
>> Thomas 'PointedEars' Lahn <PointedEars(at)web(dot)de> writes:
>>
>>> Jason C wrote:
>> <snip>
>>>> I'm looping through roughly 100,000 values:
>>>>
>>>> $userArr = array(
>>>> "something" => "anything",
>>>> ...
>>>> );
>>>>
>>>> foreach ($userArr as $key => $val) {
>>>> $firstname = str_replace($key, "****", $firstname);
>>>> $lastname = str_replace($key, "****", $lastname);
>>>> }
>>>>
>>>> Both $firstname AND $lastname could contain any of the keys, but could
>>>> only potentially contain one key each. It's likely, though, that neither
>>>> will contain any of the keys.
>> <snip>
>>>> Would it be faster to use strpos() before each str_replace(), like so?:
>>>>
>>>> foreach ($userArr as $key => $val) {
>>>> if (strpos($firstname, $key) !== false)
>>>> $firstname = str_replace($key, "****", $firstname);
>>>>
>>>> if (strpos($lastname, $key) !== false)
>>>> $lastname = str_replace($key, "****", $lastname);
>>>> }
>>>
>>> Most certainly not.
>>
>> And yet, when I measured it, it was faster. How can that be?
>>
>> <snip>
>
> For strpos is faster than str_replace on finding the string.
Yes, though the question was rhetorical!
--
Ben.
|
|
|