From 545f806666a08fc88ce79380f64571e51e683fd5 Mon Sep 17 00:00:00 2001
From: Morris Jobke <hey@morrisjobke.de>
Date: Fri, 7 Aug 2020 10:34:55 +0200
Subject: [PATCH] Use array_filter instead

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
---
 core/Command/Preview/Repair.php | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/core/Command/Preview/Repair.php b/core/Command/Preview/Repair.php
index 26760cb0e34..852eaeca1d4 100644
--- a/core/Command/Preview/Repair.php
+++ b/core/Command/Preview/Repair.php
@@ -112,30 +112,29 @@ class Repair extends Command {
 		 * by default there could be 0-9 a-f and the old-multibucket folder which are all fine
 		 */
 		if ($total < 18) {
-			foreach ($directoryListing as $index => $dir) {
+			$directoryListing = array_filter($directoryListing, function ($dir) {
 				if ($dir->getName() === 'old-multibucket') {
-					unset($directoryListing[$index]);
+					return false;
 				}
+
 				// a-f can't be a file ID -> removing from migration
 				if (preg_match('!^[a-f]$!', $dir->getName())) {
-					unset($directoryListing[$index]);
+					return false;
 				}
+
 				if (preg_match('!^[0-9]$!', $dir->getName())) {
 					// ignore folders that only has folders in them
 					if ($dir instanceof Folder) {
-						$hasFile = false;
 						foreach ($dir->getDirectoryListing() as $entry) {
 							if (!$entry instanceof Folder) {
-								$hasFile = true;
-								break;
+								return true;
 							}
 						}
-						if (!$hasFile) {
-							unset($directoryListing[$index]);
-						}
+						return false;
 					}
 				}
-			}
+				return true;
+			});
 			$total = count($directoryListing);
 		}
 
-- 
GitLab