<?php function scanDir(string $path): array { $result = []; foreach (new \DirectoryIterator($path) as $item) { //Проходим по каждому файлу внутри директории if ($item->isDot() || !$item->isDir()) { // пропускаем те, которые являются "точками", и те, которые не являются папками continue; } $result[$item->getBasename()] = getFilesList($item->getPathname()); //Получаем массив строк - названий файлов } return $result; } function getFilesList(string $path): array { $result = []; foreach (new \DirectoryIterator($path) as $item) { if ($item->isDot()) { continue; } $result[] = $item->getBasename(); } return $result; } ?> Используем так: <?php $files = scanDir(__DIR__); $json = json_encode($files);