public function lookForChildContainersRecursively($containerIds, array &$possibleContainers)
    {
        if (!$containerIds) {
            return;
        }
        $containerIds = GeneralUtility::intExplode(',', $containerIds);
        $queryBuilder = $this->getQueryBuilder();
        $childrenOnNextLevel = $queryBuilder
            ->select('uid', 'tx_gridelements_container')
            ->from('tt_content')
            ->where(
                $queryBuilder->expr()->andX(
                    $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('gridelements_pi1')),
                    $queryBuilder->expr()->in(
                        'tx_gridelements_container',
                        $queryBuilder->createNamedParameter($containerIds, Connection::PARAM_INT_ARRAY)
                    )
                )
            )
            ->execute()
            ->fetchAll();

        if (!empty($childrenOnNextLevel) && !empty($possibleContainers)) {
            $containerIds = '';

            foreach ($childrenOnNextLevel as $childOnNextLevel) {
                if (isset($possibleContainers[$childOnNextLevel['uid']])) {
                    unset($possibleContainers[$childOnNextLevel['uid']]);
                }

                $containerIds .= $containerIds ? ',' . (int)$childOnNextLevel['uid'] : (int)$childOnNextLevel['uid'];

                if ($containerIds !== '') {
                    $this->lookForChildContainersRecursively($containerIds, $possibleContainers);
                }
            }
        }
    }