Pop\Nav\Nav::traverseTree PHP Метод

traverseTree() защищенный Метод

Traverse tree to insert new leaf
protected traverseTree ( array $tree, string $branch, array $newLeaf, integer $pos = null, boolean $prepend = false, integer $depth ) : array
$tree array
$branch string
$newLeaf array
$pos integer
$prepend boolean
$depth integer
Результат array
    protected function traverseTree($tree, $branch, $newLeaf, $pos = null, $prepend = false, $depth = 0)
    {
        $t = array();
        foreach ($tree as $leaf) {
            if ((null === $pos || $pos == $depth) && $leaf['name'] == $branch) {
                if (isset($leaf['children'])) {
                    $leaf['children'] = $prepend ? array_merge(array($newLeaf), $leaf['children']) : array_merge($leaf['children'], array($newLeaf));
                } else {
                    $leaf['children'] = array($newLeaf);
                }
            }
            if (isset($leaf['children'])) {
                $leaf['children'] = $this->traverseTree($leaf['children'], $branch, $newLeaf, $pos, $prepend, $depth + 1);
            }
            $t[] = $leaf;
        }
        return $t;
    }