Remove use of array_merge() inside loop

This commit is contained in:
Zach Borboa
2023-03-11 05:01:00 -08:00
parent 5087ac64f6
commit dfdd2f5fb0
2 changed files with 78 additions and 12 deletions
+19 -10
View File
@@ -83,27 +83,36 @@ class ArrayUtil
if (empty($array)) {
$return[$prefix] = '';
} else {
$arrays_to_merge = [];
foreach ($array as $key => $value) {
if (is_scalar($value)) {
if ($prefix) {
$return[$prefix . '[' . $key . ']'] = $value;
$arrays_to_merge[] = [
$prefix . '[' . $key . ']' => $value,
];
} else {
$return[$key] = $value;
$arrays_to_merge[] = [
$key => $value,
];
}
} elseif ($value instanceof \CURLFile) {
$return[$key] = $value;
$arrays_to_merge[] = [
$key => $value,
];
} elseif ($value instanceof \CURLStringFile) {
$return[$key] = $value;
$arrays_to_merge[] = [
$key => $value,
];
} else {
$return = array_merge(
$return,
self::arrayFlattenMultidim(
$value,
$prefix ? $prefix . '[' . $key . ']' : $key
)
$arrays_to_merge[] = self::arrayFlattenMultidim(
$value,
$prefix ? $prefix . '[' . $key . ']' : $key
);
}
}
$return = array_merge($return, ...$arrays_to_merge);
}
} elseif ($array === null) {
$return[$prefix] = $array;