0
我有一个拥有类别名称的数据库。这些列是ID | CategoryName | ParentID
。我使用CodeIgniter模型中的row_array()
,并且我想为该行数组添加一个级别密钥。我有一个递归计算所有类别级别的帮助函数。我在下面的代码段写道,辅助函数:计算Treversal树项目级别
function treegenerate($arrs, $parent_id=0, $level=0) {
foreach($arrs as $arr){
if($arr["CategoryParent"]!=0){
$level+=1;
}
$arr["Level"] = $level;
treegenerate($arrs,$arr["CategoryParent"],$level);
}
return $arrs;
}
但它给出了错误:“用尽33554432个字节允许内存大小(试图分配523800个字节)”。我该如何解决这个问题?
它不能工作,因为我只返回级别我怎么能知道类别名称和ID等,将它应用到外面的foreach重要?我试过了,但它不起作用 –
好像你在你的树的每个层次横跨整个$ arrs数组多次。每次您进行新的treegenerate函数调用时。这会让你的记忆非常快。 – ACNB
我该怎么办?那么如何计算级别? –