我有一个具有类别名称的数据库。列为ID | CategoryName | ParentID
。我正在使用CodeIgniter模型中的row_array()
,我想为该行数组添加一个关卡。我有一个辅助函数,递归计算所有类别级别。我在以下代码段中编写了帮助函数:
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字节)”。我该如何解决这个问题?
答案 0 :(得分:0)
在不知道你的代码的情况下想出一些想法:
像:
function treegenerate($arr,$level=0) {
if($arr["CategoryParent"]!=0){
$level +=1;
}
else return $level;
}
treegenerate($arr["CategoryParent"],$level);;
}
foreach ($arrs as $arr) $arr['level'] = treegenerate($arr);