Skip to content

[5.8] Optimize Str::replaceArray()#28554

Closed
vlakoff wants to merge 1 commit into
laravel:5.8from
vlakoff:replaceArray
Closed

[5.8] Optimize Str::replaceArray()#28554
vlakoff wants to merge 1 commit into
laravel:5.8from
vlakoff:replaceArray

Conversation

@vlakoff
Copy link
Copy Markdown
Contributor

@vlakoff vlakoff commented May 17, 2019

array_shift() can be costly as it involves building a new array every time. Of course it worsens with large arrays. The local benchmarks I ran showed a 30% speedup.

Follow-up to #28338.

ping @staudenmeir @laurencei

@staudenmeir
Copy link
Copy Markdown
Contributor

This doesn't work with associative arrays:

Str::replaceArray('?', [1 => 'foo', 2 => 'bar'], '?/?');     // ?/foo
Str::replaceArray('?', ['x' => 'foo', 'y' => 'bar'], '?/?'); // ?/?

@vlakoff
Copy link
Copy Markdown
Contributor Author

vlakoff commented May 17, 2019

Good catch, thanks. I quickly tried to get some alternative code, but it got cumbersome…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants