Многомерный список каталогов с рекурсивным итератором

Я пытаюсь получить многомерный массив для каталогов, отформатированных как показано ниже:

[
    {
        "text": "another_folder",
        "href": "gui\/default\/uploads\/another_folder",
        "depth": 0
    },
    {
        "text": "subfold",
        "href": "gui\/default\/uploads\/subfold",
        "depth": 0,
        "nodes": {
                   "text": "sub-subfold",
                   "href": "gui\/default\/uploads\/subfold\/sub-subfold",
                   "depth": 1,
                  }
    }
]

Я хочу использовать RecursiveIterators. То, что я сделал до сих пор, я получаю все каталоги, перечисленные в данном пути. Мне нужно пойти внутрь, чтобы дети, где я сложил.

public function list_folders($folder_path='') {

    if(!$folder_path) $folder_path = $this->upl_path;

    $iterator = new RecursiveIteratorIterator(
                new RecursiveDirectoryIterator($folder_path),
                RecursiveIteratorIterator::SELF_FIRST);
    $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
    $r = array();
    $counter = 0
    foreach ($iterator as $splFileInfo) {
      if($splFileInfo->isDir()) {
        $r[$counter] = array(
          'text' => $splFileInfo->getFilename(),
          'href' => str_replace('\\','/',$splFileInfo->getPathname())
        );
        if(How to check if it has children) {
          $result[$counter] += array('nodes'=> CALL RECURSIVE HERE ? );
      }
      $counter++;
    }


    echo json_encode($r,JSON_PRETTY_PRINT);
}

Я бы использовал любую идею или помог бы с удовольствием.

Ответы на вопрос(1)

Ваш ответ на вопрос