Skip to content

Commit bfafa2c

Browse files
authored
Merge pull request #12 from Bu4ak/performance-optimization
Remove array_merge from loop
2 parents 1c9c470 + ed07573 commit bfafa2c

File tree

1 file changed

+4
-7
lines changed

1 file changed

+4
-7
lines changed

src/array_functions.php

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ function array_split_filter(array $array, callable $callback)
9898
{
9999
$passesFilter = array_filter($array, $callback);
100100

101-
$negatedCallback = function ($item) use ($callback) { return !$callback($item); };
101+
$negatedCallback = static function ($item) use ($callback) { return !$callback($item); };
102102

103103
$doesNotPassFilter = array_filter($array, $negatedCallback);
104104

@@ -134,7 +134,7 @@ function array_split(array $array, $numberOfPieces = 2, $preserveKeys = false)
134134
*/
135135
function array_merge_values(array ...$arrays)
136136
{
137-
$allValues = array_reduce($arrays, function ($carry, $array) {
137+
$allValues = array_reduce($arrays, static function ($carry, $array) {
138138
return array_merge($carry, $array);
139139
}, []);
140140

@@ -163,11 +163,8 @@ function array_flatten(array $array, $levels = -1)
163163
}
164164

165165
foreach ($array as $element) {
166-
$flattened = array_merge(
167-
$flattened,
168-
is_array($element) ? array_flatten($element, $levels) : [$element]
169-
);
166+
$flattened[] = is_array($element) ? array_flatten($element, $levels) : [$element];
170167
}
171168

172-
return $flattened;
169+
return array_merge([], ...$flattened);
173170
}

0 commit comments

Comments
 (0)