как мне вывести на сервер структуру папок в JSON

такой код выводит массив с директориями которые находятся в папке dir

header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');



$data = scandir('../dir/');
echo json_encode($data);

дерево папок на сервере примерно такое

dir/one/oneChild
dir/two/twoChild
dir/three/threeChild

хотелось бы получит что то типа этого в формате JSON , то-есть всю структуру папок из папки dir

[
  {
    "one": {
      "oneChild": {}
    }
  },
  {
    "two": {
      "twoChild": {}
    }
  },
  {
    "three": {
      "threeChild": {}
    }
  }
 ]

Ответы (1 шт):

Автор решения: Вадим Александру

Например можно рекурсивно таким образом.

function getDirTree($path)
{
  $result = [];
  $files = scandir($path);

  foreach ($files as $file) {

    if(! in_array($file, ['.','..'])) {

      if(is_dir($path . DIRECTORY_SEPARATOR . $file)) {
        $result[$file] = getDirTree($path . DIRECTORY_SEPARATOR . $file);
      } else {
        $result[] = $file;
      }
    }

  }
  return $result;
}

$data = getDirTree('my-dir');

echo json_encode($data);
→ Ссылка