限制函数在php codeigniter中递归的次数

时间:2015-11-24 16:58:04

标签: php select hierarchical multi-level

我想生成一个多级分层选择选项,以在codeigniter中选择父类或其任何子类。我想将层次结构级别限制为3.即该选项必须显示父级,其第一级子级和子级别的子级别子级缩进到父级右侧。我在所有层次结构级别上都没有问题。但我无法生成特定层次结构级别的选择选项。在我的案例中,我需要三个层次的层次结构。任何人都可以帮助我。

这是我到目前为止所尝试的内容:

vector<string> myClass::getVariablesFromDescription(string f_description)
{
    vector<string> l_variables;

    stringstream l_desc;
    l_desc << f_description;

    string l_temp;
    string l_prvStr = string();

    for(int i=0; l_desc >> l_temp ; i++ )
    {
        if(l_temp == string("="))
        {
            l_variables.push_back(l_prvStr);
        }

        l_prvStr = l_temp;
    }

    return l_variables;
}

1 个答案:

答案 0 :(得分:1)

限制递归涉及三个步骤:

  • 将作为参数传递的计数器变量初始化为递归函数。
  • 在递归之前针对所需边界测试计数器值
  • 在递归调用的情况下传递递增的计数器值。

在您的情况下,下面是$level变量:

function multilevel_select($array,$parent_id = 0,$parents = array(), $level=0) {
    // ....
            if(in_array($element['id'], $parents) && $level < 2){ // your boundary here, 2 for third nesting level from root

                $i++;
                $menu_html .= $this->multilevel_select($array, $element['id'], $parents, $level+1);
            }

        }
    }
    $i--;
    return $menu_html;
}