diff --git a/Arr.php b/Arr.php
index <HASH>..<HASH> 100755
--- a/Arr.php
+++ b/Arr.php
@@ -172,25 +172,17 @@ class Arr
      */
     public static function flatten($array, $depth = INF)
     {
-        $result = [];
-
-        foreach ($array as $item) {
+        return array_reduce($array, function ($result, $item) use ($depth) {
             $item = $item instanceof Collection ? $item->all() : $item;
 
-            if (is_array($item)) {
-                if ($depth === 1) {
-                    $result = array_merge($result, $item);
-                    continue;
-                }
-
-                $result = array_merge($result, static::flatten($item, $depth - 1));
-                continue;
+            if (! is_array($item)) {
+                return array_merge($result, [$item]);
+            } elseif ($depth === 1) {
+                return array_merge($result, array_values($item));
+            } else {
+                return array_merge($result, static::flatten($item, $depth - 1));
             }
-
-            $result[] = $item;
-        }
-
-        return $result;
+        }, []);
     }
 
     /**
Refactor flatten, and always ignore keys (#<I>)