code: private static function loadFilesRecursive($key, $names, $tempNames, $types, $sizes, $errors)
      {
          if (is_array($names)) {
              foreach ($names as $i => $name) {
                  self::loadFilesRecursive($key . '[' . $i . ']', $name, $tempNames[$i], $types[$i], $sizes[$i], $errors[$i]);
              }
          } elseif ((int) $errors !== UPLOAD_ERR_NO_FILE) {
              self::$_files[$key] = [
                  'name' => $names,
                  'tempName' => $tempNames,
                  'type' => $types,
                  'size' => $sizes,
                  'error' => $errors,
              ];
          }
      }
docs: Creates UploadedFile instances from $_FILE recursively.
  @param string $key key for identifying uploaded file: class name and sub-array indexes
  @param mixed $names file names provided by PHP
  @param mixed $tempNames temporary file names provided by PHP
  @param mixed $types file types provided by PHP
  @param mixed $sizes file sizes provided by PHP
  @param mixed $errors uploading issues provided by PHP