当前位置: 首页 > 面试题库 >

递归函数以获取所有子类别

柯轶
2023-03-14
问题内容

这是我想要做的事情:-我需要一个函数,当将其作为参数传递时,ID(用于事物类别)将提供所有子类别,子子类别和子子子..etc
。-我在考虑使用递归函数,因为我不知道子类别及其子类别的数量,依此类推,这是到目前为止我一直在尝试的操作

function categoryChild($id) {

    $s = "SELECT * FROM PLD_CATEGORY WHERE PARENT_ID = $id";
    $r = mysql_query($s);

    if(mysql_num_rows($r) > 0) {

        while($row = mysql_fetch_array($r))
            echo $row['ID'].",".categoryChild($row['ID']);
    }
    else {
        $row = mysql_fetch_array($r);
        return $row['ID'];
    }
}

如果我使用return而不是echo,我将不会得到相同的结果。我需要一些帮助以解决此问题或从头开始重写它


问题答案:

我很难弄清楚你的职能。我认为这会做您想要的。它获取ID为$ id的类别的所有子项,以及它们的子项(从而获得所需的整个子类别,子子类别效果)。

function categoryChild($id) {
    $s = "SELECT ID FROM PLD_CATEGORY WHERE PARENT_ID = $id";
    $r = mysql_query($s);

    $children = array();

    if(mysql_num_rows($r) > 0) {
        # It has children, let's get them.
        while($row = mysql_fetch_array($r)) {
            # Add the child to the list of children, and get its subchildren
            $children[$row['ID']] = categoryChild($row['ID']);
        }
    }

    return $children;
}

该函数将返回:

$var = array(
        'categoryChild ID' => array(
                'subcategoryChild ID' => array(
                        'subcategoryChild child 1' => array(),
                        'subcategoryChild child 2' => array()
                )
        ),
        'anotherCategoryChild ID' => array() # This child has no children of its own
);

它基本上返回一个具有子代ID的数组和一个包含其子代ID的数组。希望对您有所帮助。



 类似资料:
  • 问题内容: 我有一张桌子 我填写这个表 选择idFolder = 1的文件夹时,应返回该文件夹和子子文件夹的所有子文件夹(2,3,4,5,6,7) 当我选择文件夹ID = 4 ==>(5,7,6) 当我选择文件夹ID = 3 ==>(4,5,6,7) 一个查询该怎么做? 谢谢 问题答案: 这是工作中的一个 在此处查看SQL固件:http://sqlfiddle.com/#!2 / 02b78 /

  • 我把这张桌子填满了 当选择IDFolder=1的文件夹时,应该为返回此文件夹的所有子文件夹和子文件夹(2,3,4,5,6,7) 当我选择文件夹id=4==>(5,7,6)时

  • 问题内容: 这是我获得所有可能性的代码: 但是,如果要添加更多,则必须再添加一个循环。那么,我该如何使用递归呢?我尝试,我尝试,但是我真的做不到。请帮助并尽可能简单地发布示例。 谢谢。 问题答案: 这是一个简单的算法。从1迭代到2 count(array) -1。在每次迭代中,如果循环计数器的二进制表示形式中的第j位等于1,则在组合中包含第j个元素。 由于PHP需要能够将2个count(array

  • 问题内容: 你好 我想获得在运行时在Java中实现接口的类的列表,这样我就可以进行查找服务而不必对其进行硬编码。有没有简单的方法可以做到这一点?我不害怕 问题答案: 最简洁的答案是不。 长的答案是,子类可以以多种方式出现,从根本上说,根本不可能分类找到它们。 您无法在运行时执行此操作,但只有在加载了类以及如何知道它们已加载后才能找到类?您可以扫描每个JAR和类文件,但这不是确定的。另外,还有URL

  • 问题内容: 我正在尝试使用ng-class的angular。我有一个函数,它根据我们发送的参数返回类。我该如何实现呢? 这是我尝试过的: 并在控制器中: 只需返回一个字符串即可。但是当我添加此anfular.forEach时,它停止了。在调试器中,循环工作正常并返回正确的数据。 我知道可以通过过滤器来解决,但我只想这样做。 问题答案: 您不应该使用单个大括号,只需删除它们即可使用: 但是,对于您的

  • 问题内容: 我有一个Comment表,其中有一个CommentID和ParentCommentID。我正在尝试获取评论的所有子级的列表。到目前为止,这是我到目前为止尚未完成的测试。 2个问题: 有什么明显的方法可以改善这一点吗?(此外,也许还可以使用CTE在sql中创建视图。) 我怎么不能只给一个IEnumerable屈服呢? 无论如何,在这种情况下可以使用SelectMany吗? 问题答案: 我