Recursion 递归函数的替代方法
我一直致力于传销(多层次营销)应用。 下面是递归函数的代码片段(不是全部代码),我在初始阶段编写了该函数,并且它工作正常。但是现在MLM树太深,递归函数停止。它说超过了最大嵌套级别。我增加了嵌套函数调用级别几次,但现在我不想再增加了,因为我知道这不是正确的解决方案 有人能为我推荐一个替代代码(可能是迭代的)吗Recursion 递归函数的替代方法,recursion,iteration,Recursion,Iteration,我一直致力于传销(多层次营销)应用。 下面是递归函数的代码片段(不是全部代码),我在初始阶段编写了该函数,并且它工作正常。但是现在MLM树太深,递归函数停止。它说超过了最大嵌套级别。我增加了嵌套函数调用级别几次,但现在我不想再增加了,因为我知道这不是正确的解决方案 有人能为我推荐一个替代代码(可能是迭代的)吗 <?php function findallpairs($username, $totalusers= 0) { $sql = "select username,package_id
<?php
function findallpairs($username, $totalusers= 0)
{
$sql = "select username,package_id from tbl_user where
parent_id = '".$username."' order by username";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
$username = $row["username"];
$totalusers++;
$arrtmp = findallpairs($username, $totalusers);
$totalusers = $arrtmp["totalusers"];
}
}
$arrpoints["totalusers"] = $totalusers;
return $arrpoints;
}
?>
你要挖多深
day在您的sql数据库中创建了一个mutliway树。树是递归结构,递归代码自然适合
你可以使用我所说的准记忆
如果在DB结构中列出了子项,那么这应该很容易。为没有childrin的所有用户获取一个结果,将其值memioize到一个哈希或树中,键为用户ID,值为1。然后对每个用户(或memiozed条目的父项)进行大规模迭代,如果它的所有子项都有memiozed值,则将它们相加并将该值memiozed。重复迭代,直到找到根用户(没有父用户)
如果你没有孩子的记录,那很可能效率极低。你要深入到什么程度
day在您的sql数据库中创建了一个mutliway树。树是递归结构,递归代码自然适合
你可以使用我所说的准记忆
如果在DB结构中列出了子项,那么这应该很容易。为没有childrin的所有用户获取一个结果,将其值memioize到一个哈希或树中,键为用户ID,值为1。然后对每个用户(或memiozed条目的父项)进行大规模迭代,如果它的所有子项都有memiozed值,则将它们相加并将该值memiozed。重复迭代,直到找到根用户(没有父用户)
如果你没有孩子的记录,那很可能效率很低